一.问题:
给定区间 [−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。
输入格式:
输入第 1 行给出正整数 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
二.思路:
本题较简单,但注意ABC的取值范围 [pow(−2,31),pow(2,31)] ,在C语言中,int类型的取值范围为 [pow(−2,31),pow(−2,31)-1],所以数据类型不要选int,选long。
三.代码实现(C语言实现):
#include <stdio.h>
int main()
{
// 输入数据
int T;
long nums[10][4];
scanf("%d", &T);
for (int i = 0; i < T; i++)
{
scanf("%ld %ld %ld", &nums[i][0], &nums[i][1], &nums[i][2]);
}
// 比较大小
for (int i = 0; i < T; i++)
{
if (nums[i][0] + nums[i][1] > nums[i][2])
{
nums[i][3] = 1;
}
else
{
nums[i][3] = 0;
}
}
// 输出
int X = 1;
for (int i = 0; i < T; i++,X++)
{
if (nums[i][3])
{
printf("Case #%d: true\n", X);
}
else
{
printf("Case #%d: false\n", X);
}
}
return 0;
}