1001 : A+B和C (15)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard 

题目描述

给定区间[-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


思路分析:

这其实就是一个比较大小的算术题,就相当于判断三角形的两边之和是否大于第三边,从而确认是否是合法的三角形,只不过咱题目里的数可以是负数:

①因为A、B、C的区间为[-2的31次方, 2的31次方],所以int是存不下的,需要用lang类型的变量来接收
②判断A+B是否大于C,如果大于,输出Case #i: true,否则输出Case #i: false
③如果还有测试用例,继续从①开始执行,否则结束程序


java 代码如下:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sca = new Scanner(System.in);
        int N = sca.nextInt();
        long a,b,c;
        boolean[] n = new boolean[N];
        for (int i = 0; i < N; i++) {
            a = sca.nextLong();
            b = sca.nextLong();
            c = sca.nextLong();
            if(a+b>c)
                n[i] = true;
            else
                n[i] = false;
        }
        for (int i = 0; i < N; i++) {
            System.out.println("Case #"+(i+1)+": "+n[i]);
        }
    }
}



01-23 09:05