1065. A+B and C (64bit) (20)

    xiaoxiao2021-12-14  19

    Given three integers A, B and C in [-263, 263], you are supposed to tell whether A+B > C.

    Input Specification:

    The first line of the input gives the positive number of test cases, T (<=10). Then T test cases follow, each consists of a single line containing three integers A, B and C, separated by single spaces.

    Output Specification:

    For each test case, output in one line “Case #X: true” if A+B>C, or “Case #X: false” otherwise, where X is the case number (starting from 1).

    Sample Input: 3 1 2 3 2 3 4 9223372036854775807 -9223372036854775808 0 Sample Output: Case #1: false Case #2: true Case #3: false 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming

    知识点:

    正溢出:两个正数和等于负数,负溢出:两个负数和等于正数long long 范围:[-2^63,2^63)A+B最大是2^64-2,溢出后为-2,因为(2^64-2)%(2^64)所以A>0,B>0,A+B<0时是正溢出,此时A+B>CA<0,B<0,A+B>=0,负溢出,A+B #include<cstdio> int main() { int n,i; long long a,b,c,d; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lld%lld%lld",&a,&b,&c); d=a+b; if(a>0&&b>0&&d<=0) printf("Case #%d: true\n",i+1); else if(a<0&&b<0&&d>=0) printf("Case #%d: false\n",i+1); else {if(d>c) printf("Case #%d: true\n",i+1); else printf("Case #%d: false\n",i+1);} } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-965566.html

    最新回复(0)