PAT 1065 A+B and C (64bit)
阿新 • • 發佈:2021-02-04
#include<cstdio> #include<iostream> using namespace std; int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ long long a,b,c; scanf("%lld%lld%lld",&a,&b,&c); bool isyc1=false; bool isyc2=false; long long sum=a+b; if(a>0&&b>0&&sum<=0)isyc1=true; if(a<0&&b<0&&sum>=0)isyc2=true; if(isyc1)printf("Case #%d: true\n",i+1); else if(isyc2)printf("Case #%d: false\n",i+1); else if(a+b>c)printf("Case #%d: true\n",i+1); else if(a+b<=c)printf("Case #%d: false\n",i+1); } return 0; }
總結:如果a,b都大於0,溢位則小於等於0,都小於0,溢位則大於等於0,a+b的值首先要賦給一個long long,不然可能超出int的範圍就會導致溢位(不確定)。