1011 A+B 和 C (15分)
題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805312417021952

輸入格式:
輸入第 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
我的理解
感覺自己的做法偏離了題目的用意,不過也能通過,看資料范圍,超過了平常int的范圍,本來的思路是根據A、B、C、的正負調整A+B > C的位置關系來判斷,例如A、B、C都為正時,改為判斷A > C - B,這樣就不會導致因為資料太大或太小而溢位,A、B異號時,直接進行計算即可,也不會溢位,其余情況類似處理,
然后我就用了c++中的long long 型別,直接計算即可,
代碼段
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T;
short result[T];
for (int i = 0; i < T; ++i) {
long long a, b, c;
cin >> a >> b >> c;
if (a + b > c) {
result[i] = 1;
} else {
result[i] = 0;
}
}
for (int j = 0; j < T; ++j) {
if (result[j] == 1) {
cout << "Case #" << j + 1 << ": true" << endl;
} else {
cout << "Case #" << j + 1 << ": false" << endl;
}
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/107648.html
標籤:其他
上一篇:798. 差分矩陣 (二維差分)
下一篇:雙指標演算法模板
