个人主页:mzwang.top
A+B 和 C
题目描述:
给定区间 [ − 2 31 −2^{31} −231, 2 31 2^{31} 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
题目来源:PAT乙级1011
作者:HOU, Qiming
单位:浙江大学
注:点击文章底部的 阅读原文
可直接进入本题在线评测系统
问题解决:
解题思想
本题主要考察整型int
和long long
的取值范围,题中给定区间 [−
2
31
2^{31}
231,
2
31
2^{31}
231] ,而int
型取整范围为[−
2
31
2^{31}
231,
2
31
2^{31}
231-1],因此不能用int
,用int
评测系统会报错,要用long long型。
注:绝对值在
1
0
9
10^9
109以内的整数都可以定义出int
型,
1
0
9
10^9
109以上的整数定义成long long
型。
代码示例(C)
小提示:左右滑动代码可查看全部内容
#include <stdio.h>
int main()
{
long long a,b,c;
int t,i = 1;
scanf("%d",&t);
while(t--){
//注意long long型的格式控制符为%lld
scanf("%lld%lld%lld",&a,&b,&c);
if(a + b > c){
printf("Case #%d: true\n",i);
}
else{
printf("Case #%d: false\n",i);
}
i++;
}
return 0;
}