B1011 A+B 和 C (15分)

进制转换

1. 原文

给定区间 [−$2^{31}$,$2^{31}$] 内的 3 个整数 ABC,请判断 A+B 是否大于 C

输入格式:

输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 ABC。整数间以空格分隔。

输出格式:

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

输入样例:

1
2
3
4
5
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出样例:

1
2
3
4
Case #1: false
Case #2: true
Case #3: true
Case #4: false

2. 解析思路

int表示范围为[−$2^{31}$,$2^{31}$],两个int相加可能超过范围表示为负数。

3. AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
long long a,b,c,sum;
for(int i=1;i<=n;i++){
scanf("%lld%lld%lld",&a,&b,&c);
printf("Case #%d: ", i);
sum=a+b;
if (a>0&&b>0&&sum<0)
{
printf("true");
}else if(a<0&&b<0&&sum>=0){
printf("false");
}else if(sum>c){
printf("true");
}else{
printf("false");
}
printf("\n");
}
return 0;
}
本文结束  感谢您的阅读
  • 本文作者: Wang Ting
  • 本文链接: /zh-CN/2019/09/06/B1011/
  • 发布时间: 2019-09-06 21:20
  • 更新时间: 2021-10-29 14:14
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!