HDOJ 2057 A+B Again

考察的是基础:

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

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

C中:

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

C++中:

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

 cout << hex << a << b;

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Author: Tanky Woo
// HDOJ 2057
#include<stdio.h>
#include<iostream>
#include<iomanip>
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;
    }
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

发表评论

电子邮件地址不会被公开。 必填项已用*标注