NYOJ244-16進制的簡單運算


16進制的簡單運算

時間限制: 1000 ms  |  內存限制:65535 KB
難度: 1
描述
現在給你一個16進制的加減法的表達式,要求用8進制輸出表達式的結果。
輸入
第一行輸入一個正整數T(0<T<100000)
接下來有T行,每行輸入一個字符串s(長度小於15)字符串中有兩個數和一個加號或者一個減號,且表達式合法並且所有運算的數都小於31位
輸出
每個表達式輸出占一行,輸出表達式8進制的結果。
樣例輸入
3
29+4823
18be+6784
4ae1-3d6c
樣例輸出
44114
100102
6565
思路:一開始想到的是字符串解決,敲代碼會發現很麻煩,然而本題難度才只是1,事出反常必有妖,轉換思路用十六進制和八進制的輸入輸出。
AC代碼:
#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int a,b;
        char c;
        scanf("%x%c%x",&a,&c,&b);
        if(c=='-')
            printf("%o\n",a-b);
        else printf("%o\n",a+b);
    }
    return 0;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM