給定區(qū)間[-2的31次方, 2的31次方]內(nèi)的3個整數(shù)A、B和C,請判斷A+B是否大于C辨赐。
輸入格式:輸入第1行給出正整數(shù)T(<=10)芙沥,是測試用例的個數(shù)诲祸。隨后給出T組測試用例,每組占一行而昨,順序給出A救氯、B和C。整數(shù)間以空格分隔歌憨。
輸出格式:對每組測試用例着憨,在一行中輸出“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
idea:
- 題目比較簡單,求A+B>C植袍,關(guān)鍵是2的31次方容易和int類型的取值范圍搞混惧眠,int類型取值范圍為2的31次方減1
-獻(xiàn)上我的答案和牛客網(wǎng)上看到好的答案
code:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int num=0;
Scanner in=new Scanner(System.in);
num = Integer.parseInt(in.nextLine());
List<String> output=new ArrayList<>();
for (int i = 0; i < num; i++) {
output.add(in.nextLine());
}
for (int i = 0; i < output.size(); i++) {
String[] split = output.get(i).split(" ");
if((Long.parseLong(split[0].trim()) + Long.parseLong(split[1].trim()))> Long.parseLong(split[2].trim())){
System.out.println("Case #"+(i+1)+": true");
}else{
System.out.println("Case #"+(i+1)+": false");
}
}
}
}
Best
import java.util.*;
import java.math.*;
public class Test{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for(int i=1; i<=T; i++){
BigInteger a = in.nextBigInteger(); //用BigInteger做數(shù)據(jù)類型
BigInteger b = in.nextBigInteger();
BigInteger c = in.nextBigInteger();
BigInteger sum = a.add(b); //A+B
if(sum.compareTo(c)>0) //用compareTo方法和C比較
System.out.println("Case #"+i+": true");
else
System.out.println("Case #"+i+": false");
} }
}