PAT 65.A+B and C(64 bit)(20)

4289 ワード

テーマリンク:http://pat.zju.edu.cn/contests/pat-a-practise/1065
考え方の分析:
 1)a+bによるlong longタイプのデータオーバーフローを特殊処理する:
  a>0&&b>0&a+b<=0:a+bはcより大きい必要があります。
  a<0&&b<0&a+b>=0:a+bは必ずcより小さい
 
 1 #include <stdio.h>

 2 #include <stdlib.h>

 3 

 4 

 5 int main(int argc,char *argv[]){

 6     long long a,b,res;

 7 

 8     int n;

 9     scanf("%d",&n);

10     bool flag;

11     for(int i=1;i<=n;i++){

12         scanf("%lld %lld %lld",&a,&b,&res);

13         long long tmp=a+b;

14 

15         if(a>0 && b>0 && tmp<=0)flag=true;

16         else if(a<0 && b<0 && tmp>=0) flag=false;

17         else flag=a+b>tmp;

18 

19         printf("Case #%d:",i);

20         if(flag) puts("true");

21         else puts("false");

22     }

23 

24     system("pause");

25     return 0;

26 }