1011. A+B和C

给定区间[-2的31次方, 2的31次方]内的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

idea:

  • 题目比较简单,求A+B>C,关键是2的31次方容易和int类型的取值范围搞混,int类型取值范围为2的31次方减1
    -献上我的答案和牛客网上看到好的答案

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 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做数据类型
            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");
        }  }
}

你可能感兴趣的:(1011. A+B和C)