PAT乙级:1011 A+B 和 C (15 分)(Java)
微信公众号请搜索:【Codeplus】
题目描述:
题解思路:
这个题目将所输入的作为一个字符串,使用split方法将字符串以空格分隔成字符数组,再将每个字符数组转换为整型,重点就是数据类型的表示范围,具体如下:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这里需要使用long类型,否则会造成溢出
提交代码:
import java.util.Scanner;
/**
* 1011 A+B 和 C (15 分)
*
* @author LiFeilin
* @date 2021/5/26 10:27
*/
public class Test11 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
scanner.nextLine();
for (int i = 0; i < m; i++) {
String[] array = scanner.nextLine().split(" "); //将输入的字符串以空格分割成字符数组
long a = Integer.parseInt(array[0]); //此处必须为long整型
long b = Integer.parseInt(array[1]);
long c = Integer.parseInt(array[2]);
if(a+b>c) {
System.out.println("Case #" + (i+1) + ": true");
}else System.out.println("Case #" + (i+1) + ": false");
}
}
}
提交结果: