PAT Basic 1011. A+B和C (15)
时间限制
150 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
HOU, Qiming
给定区间[-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
思路:
最开始思路1:用long long 保存a+b的结果和c比较, 结果不对.(a=b=2147483647)
思路2: (a+b)>c =>1.c==0 a>-b
2.c>0 (a/c+b/c)>1 (a/c, b/c用double保存)
3.c<0 (a/c+b/c)<1 (a/c, b/c用double保存)
结果扔不能全通过
解答:
直接 a,b,c用double保存, 比较(a+b)-c>0.0000001
#include <iostream>
using namespace std;
int main(){
int t, kase=0;
cin>>t;
double a, b, c;
while(t--){
kase++;
cin>>a>>b>>c;
cout<<"Case #"<<kase<<": ";
if(a+b-c>0.000001){
cout<<"true"<<endl;
}else{
cout<<"false"<<endl;
}
}
return 0;
}