PAT (Basic Level) 1011 A+B 和 C (15分)

tech2024-10-28  19

给定区间 [−​​,] 内的 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

解题思路:

分类讨论即可,注意数据类型为long long。

#include<cstdio> #include<iostream> using namespace std; int main(void){ int T;//测试用例数 cin>>T; int i; int tcase=1;//当前测试数据数 for(i=1;i<=T;i++){ long long a,b,c; cin>>a>>b>>c; if(a+b>c){ printf("Case #%d: true\n",tcase); tcase++; }else{ printf("Case #%d: false\n",tcase); tcase++; } } return 0; }

 技术总结:

//—64位编译器—//

char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 8个字节 _int64:8个字节

所以,对于64位编译器来说,各种类型的范围如下: unsigned int:0~4294967295(0~2^32-1) int:-2147483648~2147483647(-2^31~2^31-1) unsigned long:0~4294967295(0~2^32-1) long:-2147483648~2147483647(-2^31~2^31-1) long long:-9223372036854775808~9223372036854775807(-2^63~2^63-1) unsigned long long:0~18446744073709551615(0~2^64-1)

__int64:-9223372036854775808~9223372036854775807(-2^63~2^63-1) unsigned __int64:0~18446744073709551615(0~2^64-1)

最新回复(0)