Question:
给定区间 [−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
解决思路:
直接用简单的int数据类型来作比较不行,可以采用long。以下来自java数据类型
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
利用常用的split方法操作输入的数据,可以方便地进行比较、输出
package PATC11;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=Integer.parseInt(sc.nextLine());
String ans_str="Case #";
String answer="";
for(int i=1;i<=num;i++)
{
String calc=sc.nextLine();
String[] split = calc.split(" ");
long l1=Long.parseLong(split[0]);
long l2=Long.parseLong(split[1]);
long l3=Long.parseLong(split[2]);
long l4=l1+l2;
answer=answer+ans_str+i+": "+((l1+l2)>l3)+"\n";
}
System.out.print(answer);
}
}
补充:这是一份没有注释的代码
今日感想:世界是个物质的世界,万物皆以过程的形式存在,而爱与美好,正是在这个过程中产生,有时候人们就会困惑到底需要什么,聪明的你需要什么呢?