cms 多个网站,c 教程如何做网站,网站app制作,常熟住房和城乡建设局网站首页题目 1#xff1a;多组AB#xff08;基础版#xff09;
题目描述#xff1a; 输入多组数据#xff0c;每组数据包含两个整数 A 和 B#xff0c;计算它们的和。输入以 文件结尾#xff08;EOF#xff09; 结束。
输入格式#xff1a; 每行包含两个整数 A 和 B#x…题目 1多组AB基础版
题目描述 输入多组数据每组数据包含两个整数 A 和 B计算它们的和。输入以 文件结尾EOF 结束。
输入格式 每行包含两个整数 A 和 B-10^9 ≤ A, B ≤ 10^9。
输出格式 对于每组输入输出 AB 的结果每行输出一个结果。
输入示例
1 2
3 4
5 6 输出示例
3
7
11
解题思路
题目要求输入 多组数据并且以 EOFEnd Of File 结束因此不能使用固定次数的循环。使用 Scanner.hasNextInt() 或 BufferedReader.readLine() 来判断是否有新的输入。
解法 1Scanner
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);while (scanner.hasNextInt()) { // 判断是否有输入int a scanner.nextInt();int b scanner.nextInt();System.out.println(a b);}scanner.close();}
}
解法 2BufferedReader
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class Main {public static void main(String[] args) throws IOException {BufferedReader reader new BufferedReader(new InputStreamReader(System.in));String line;while ((line reader.readLine()) ! null) { // 读取到EOFString[] nums line.split( );int a Integer.parseInt(nums[0]);int b Integer.parseInt(nums[1]);System.out.println(a b);}}} 题目 2计算圆的面积
题目描述 输入一个半径 r计算圆的面积并保留两位小数。
输入格式 输入一个正整数 r1 ≤ r ≤ 1000。
输出格式 输出圆的面积结果保留两位小数。
输入示例
2
输出示例
12.57
解题思路
计算圆的面积公式为 π * r * r。需要使用 格式化输出保留两位小数使用 System.out.printf(%.2f, area);。
Java代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int r scanner.nextInt();double area Math.PI * r * r;System.out.printf(%.2f\n, area);}} 题目 3整数除法
题目描述 输入两个整数 A 和 B计算 A 除以 B 的整数部分以及余数。
输入格式 输入包含两个整数 A 和 B-10^9 ≤ A ≤ 10^9, 1 ≤ B ≤ 1000。
输出格式 输出 A 除以 B 的整数部分和余数用空格隔开。
输入示例
10 3
输出示例
3 1
解题思路
直接使用 A / B 求整数部分使用 A % B 求余数。
Java代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int a scanner.nextInt();int b scanner.nextInt();System.out.println((a / b) (a % b));}} 题目 4换行输入的 AB
题目描述 输入两行每行一个整数 A 和 B计算 AB。
输入格式 第一行输入整数 A-10^9 ≤ A ≤ 10^9第二行输入整数 B。
输出格式 输出 AB 的结果。
输入示例
5
6
输出示例
11
解题思路
需要读取 两行 输入并计算它们的和。
Java代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int a Integer.parseInt(scanner.nextLine());int b Integer.parseInt(scanner.nextLine());System.out.println(a b);}} 题目 5浮点数的四舍五入
题目描述 输入一个浮点数 x0 ≤ x ≤ 10000对其进行四舍五入输出整数。
输入格式 输入一个浮点数 x。
输出格式 输出 x 四舍五入后的整数。
输入示例
3.6
输出示例
4
解题思路
直接使用 Math.round(x) 进行四舍五入。
Java代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);double x scanner.nextDouble();System.out.println(Math.round(x));}} 题目6大数求和int溢出问题
题目描述
输入两个整数A和B取值范围为-1e18到1e18输出AB的值。
输入示例
1000000000000000000 2000000000000000000
输出示例:
3000000000000000000
参考代码
import java.io.*;import java.math.BigInteger;public class Main {public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));String[] input br.readLine().split( );BigInteger a new BigInteger(input[0]);BigInteger b new BigInteger(input[1]);System.out.println(a.add(b));}}
解析 数据类型选择int和long均无法存储1e18范围的值必须使用BigInteger。 易错点 直接使用long仍可能溢出如Long.MAX_VALUE 9e18但题目输入可能超过此范围。 未处理负数输入。 题目3保留三位小数的浮点运算
题目描述
输入一个浮点数r表示球的半径计算球体积并保留三位小数公式:v3/4tr3)
输入示例
3.0
输出示例
113.097
参考代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);double r sc.nextDouble();double volume 4.0 / 3 * Math.PI * Math.pow(r, 3);System.out.printf(%.3f, volume); // 自动四舍五入}}
解析 浮点运算陷阱 4 / 3在Java中结果为1整数除法需写为4.0 / 3。 格式化输出printf中的%.3f会自动四舍五入到第三位小数。 题目4混合输入处理
题目描述
第一行输入一个整数n表示后续有n组数据。每组数据包含一个字符串和一个整数格式为[字符串] [整数]。输出所有整数之和。
输入示例
3
Apple 5
Banana 10
Orange 15
输出示例
30
参考代码
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));int n Integer.parseInt(br.readLine());int sum 0;for (int i 0; i n; i) {String[] parts br.readLine().split( );sum Integer.parseInt(parts[1]); // 取第二个元素}System.out.println(sum);}}
解析 输入顺序处理每组数据的第二个元素是整数需通过索引parts[1]提取。 易错点 字符串可能包含空格如Hello World 20此时parts[1]可能不是整数。 未处理非数字字符如输入为Apple Five。 题目5边界条件测试极大值
题目描述
输入两个整数A和B取值范围为0到1e18输出A*B的值。
输入示例
1000000000 3000000000
输出示例
3000000000000000000
参考代码
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));String[] input br.readLine().split( );long a Long.parseLong(input[0]);long b Long.parseLong(input[1]);System.out.println(a * b);}}
解析 溢出问题 1e9 * 3e9 3e18在long范围内Long.MAX_VALUE 9e18。 若结果超过9e18需改用BigInteger。