专栏:PAT乙级刷题笔记
题目
给定区间 [ − 2 31 , 2 31 ] [-2^{31},2^{31}] [−231,231]内的 3 个整数 A A A、 B B B 和 C C C,请判断 A + B A+B A+B 是否大于 C C C。
输入格式
输入第 1 行给出正整数是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A A A、 B B B和 C C C。整数间以空格分隔。
输出格式
对每组测试用例,在一行中输出 Case #X: true 如果 A + B > C A+B>C 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
分析
送分题,不清楚这道题的出题目的,注意下int的范围即可。或许是要考察大数相加?不过没个几百位也没有意义呀。
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
long a,b,c;//用long类型保险
cin>>n;
int *A = new int[n];
for(int i = 0;i < n;++i){
cin>>a>>b>>c;
if(a+b>c)
A[i] = 1;
else
A[i] = 0;
}//由于格式要求是要全部输入完后再一次性全部输出,所以用A[i]来存储判断的结果。
for(int i = 0;i < n-1;++i){
if(A[i] == 0)
cout<<"Case #"<<i+1<<": false"<<endl;
else
cout<<"Case #"<<i+1<<": true"<<endl;
}
if(A[n-1] == 0)
cout<<"Case #"<<n<<": false";
else
cout<<"Case #"<<n<<": true";
return 0;
}