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

xiaoxiao2021-02-28  58

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 注意溢出情况,long long +long long会超出范围,

如果a>0&&b>0 &&a+b<0 说明a+b溢出,肯定大于c

如果a<0&&b<0 &&a+b>0 说明a+b溢出,肯定小于c

注意这两种情况

#include <cstdio> #include <vector> #include <algorithm> #include <cmath> #include <queue> #include <iostream> using namespace std; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ long long a,b,c; scanf("%lld %lld %lld", &a, &b, &c); long long sum=a+b; printf("Case #%d: ",i); if(a>0&&b>0&&sum<=0){ cout<<"true"<<endl; } else if(a<0&&b<0&&sum>=0){ cout<<"false"<<endl; } else{ if(sum>c) cout<<"true"<<endl; else cout<<"false"<<endl; } } return 0; }

转载请注明原文地址: https://www.6miu.com/read-600064.html

最新回复(0)