作者:xiejiahui62484 | 来源:互联网 | 2024-12-05 23:50
问题描述
给定三个位于区间[-2^31, 2^31]内的整数A、B和C,需要判断A+B的结果是否超过了C。
输入说明
第一行输入一个正整数T(T ≤ 10),表示测试案例的数量。接下来的T行,每行包含三个整数A、B和C,这三个整数之间以空格分隔。
输出说明
对于每一个测试案例,在单独的一行输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X代表测试案例的序号(从1开始计数)。
示例输入
4 1 2 3 2 3 4 2147483647 0 2147483646 0 -2147483648 -2147483647
|
示例输出
Case #1: false Case #2: true Case #3: true Case #4: false
|
解决方案
方案一:
#include using namespace std; int main() { int cases; cin >> cases; double numA, numB, numC; for (int i = 0; i cin >> numA >> numB >> numC; if (numA + numB > numC) { cout <<"Case #" < } else { cout <<"Case #" < } } return 0; }
|
方案二:
#include using namespace std; int main() { int testCases; scanf("%d", &testCases); for (int i = 0; i long long int a, b, c; scanf("%lld%lld%lld", &a, &b, &c); printf("Case #%d: %s\n", i + 1, a + b > c ? "true" : "false"); } return 0; }
|
个人见解
这道题相对简单,但需要注意的是,由于给定的整数可能超出标准int类型的范围,因此在处理时应考虑使用更大的数据类型如long long int来避免溢出问题。虽然也可以尝试使用其他数据类型如string来处理,但从效率和简洁性上讲,使用long long int更为合适。