Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 1.24 KB

1065. A+B and C.md

File metadata and controls

39 lines (28 loc) · 1.24 KB

【PAT A-1065】 A+B and C (64bit)

题意概述

给出 3 个整数 A,B,C,问 A+B>C 是否成立。

输入输出格式

输入的第一行给出一个正整数 T,表示测试用例的数量。然后是 T 个测试用例,每个用例包含一行,其中包含三个整数 A,B 和 C,并用单个空格分隔。

对于每个测试用例,如果 A+B>C,输出一行Case #X: true;否则,输出一行Case #X: false,其中 X 是测试用例编号(从 1 开始)。

数据规模

$$T<=10, -2^{63}<=A,B,C<=2^{63}$$

算法设计

这种题目没什么太大意义。由于直接使用 long long 类型存储 A,B,C,在计算 A+B 有可能会造成数据溢出。我们考虑使用浮点数存储 A,B,C,但是由于 double 最多只能保存 15-16 位有效数字,用来存储 A,B,C 可能会有精度损失,我们可以使用精度更高的 long double 类型。

C++代码

#include <bits/stdc++.h>
using namespace std;
using gg = long long;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    gg t;
    cin >> t;
    for (gg i = 1; i <= t; i++) {
        long double a, b, c;
        cin >> a >> b >> c;
        cout << "Case #" << i << ": " << boolalpha << (a + b > c) << "\n";
    }
    return 0;
}