zoukankan      html  css  js  c++  java
  • 杭电2057

    题目大意是输入两个带正负号的十六进制数,再以十六进制输出其和

    本以为是一道水题,直接用%x进行运算就行,但是后面出现了许多问题

    首先是%x输出负数时会出现ffff的代码,后面查了一下发现大致是转码方面的问题,所以想要输出题目里的结果,就必须要把负数处理一下

    然后后面有几次wrong answer是数据类型的问题(和某四渠注水问题尿性类似),所以将输入数据改为了long long,但是这个时候%x出问题了,后面经过查询了解到%x只能对应int类型,而要对应64位的long long类型,%x要改写为%I64x

    #include<stdio.h>
    
    int main(void){
        long long a, b, sum;
        while( scanf("%I64X%I64X", &a, &b)!=EOF ){
            sum=0;
            sum = a+b;
            if(sum < 0){
                sum *= -1;
                printf("-%I64X
    ", sum);
            }else{
                printf("%I64X
    ", sum);    
            }
        }
        return 0;
    }
  • 相关阅读:
    oracle学习6
    oracle学习5
    oracle学习4
    oracle学习3
    oracle的过滤与排序
    poj1064 Cable master
    poj3169 Layout
    UVA
    poj2341 Expedition
    poj3617 Best Cow Line
  • 原文地址:https://www.cnblogs.com/ssNiper/p/11106607.html
Copyright © 2011-2022 走看看