Blog·Tanky WooABOUTRSS

HDOJ 2057 A+B Again

18 Jul 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

考察的是基础:

因为位数小于15,所以是大数,不是大数就用数组表示的。这里就是用__int64存储。

第二个考察的是进制的输入与输出:

C中:

%I64X    %I64o    %I64d    %I64u分别表示十六进制,8进制,10进制,无符号位

C++中:

cin >> hex >> a >> b;     // 十六进制

 cout << hex << a << b;

cin >> dec >> a;    //十进制

cin >> oct >>a;     //八进制

注意:负数是用其补码表示,所以表示时应该改为其负数,并在前面输出'-'(负号)。

// Author: Tanky Woo
// HDOJ 2057
#include
#include
#include
using namespace std;
// www.wutianqi.com
int main()
{
    __int64 a, b;
    while(cin >> hex >> a >> b)
    {
        __int64 sum =a + b;
        if(sum < 0)
        {
            sum =- sum;
            printf("-");
        }
        cout << uppercase << hex << sum << endl;
    }
}