pat乙级1011 A+B和C

给定区间 [−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

 

#include <iostream>
using namespace std;
int main() {
    long long a,b,c;
    int i,count;
    cin>>count;
    int an[ 10 ];
    
    for(i=1;i<count+1;i++){
    	cin>>a>>b>>c;
    	if(a+b>c){
    		an[i]=1;
		}
		else{
			an[i]=0;
		}
	}
	
	for(i=1;i<count+1;i++){
		string s;
		s = an[i]?"true":"false";
		cout<<"Case #"<<i<<": "<<s;
		if(i!=count){
			cout<<endl;
		}
	}
    return 0;
}

第一次写的时候类型设置成了int,但是需要注意的是题目要求给定区间 [−2​的31次方​​,2​的31次方​​] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C,也就是a,b,c这三个变量会超出int的范围,因为int的范围是[−2​的31次方​​,2​的31次方-1​​] 。所以应该用长整型long long。

题目里输出中的冒号后面那个空格有点隐蔽。。第一次写的时候没有发现,导致输出错误。。

也是比较简单的一道题。
 

 

 

上一篇:vue实现数据双向绑定的原理:Object.defineProperty()


下一篇:P1966 火柴排队