1011 A+B 和 C——C/C++實現
阿新 • • 發佈:2018-11-24
題目
1011 A+B 和 C (15 point(s))
給定區間 [−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
演算法
沒什麼難的,主要是考察資料型別的大小。另外如果資料足夠大,大到連double和long long int也無法儲存,就按照加法的邏輯進行進位計算即可。
程式碼
C++實現
#include <iostream> using namespace std; int main(){ double a,b,c; int T; cin>>T; for(int i=0;i<T;i++){ cin>>a>>b>>c; printf("Case #%d: %s\n",i+1,a+b>c?"true":"false"); } return 0; }
C實現
//PAT1011V2 #include <stdio.h> int main(){ int t,i=1; double a,b,c; scanf("%d",&t); while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){ // scanf("%ld %ld %ld",&a,&b,&c); if((a+b)>c) printf("Case #%d: true\n",i++); else printf("Case #%d: false\n",i++); } return 0; }