当前位置: 首页 > news >正文

蓝桥杯Java之输入输出练习题

题目 1:多组A+B(基础版)

题目描述:
输入多组数据,每组数据包含两个整数 A 和 B,计算它们的和。输入以 文件结尾(EOF) 结束。

输入格式:
每行包含两个整数 A 和 B(-10^9 ≤ A, B ≤ 10^9)。

输出格式:
对于每组输入,输出 A+B 的结果,每行输出一个结果。

输入示例:

1 2

3 4

5 6

输出示例:

3

7

11

解题思路:

  • 题目要求输入 多组数据,并且以 EOF(End Of File) 结束,因此不能使用固定次数的循环。
  • 使用 Scanner.hasNextInt() 或 BufferedReader.readLine() 来判断是否有新的输入。

解法 1:Scanner

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();}
}

解法 2:BufferedReader

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,计算圆的面积,并保留两位小数

输入格式:
输入一个正整数 r(1 ≤ 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:换行输入的 A+B

题目描述:
输入两行,每行一个整数 A 和 B,计算 A+B。

输入格式:
第一行输入整数 A(-10^9 ≤ A ≤ 10^9),第二行输入整数 B。

输出格式:
输出 A+B 的结果。

输入示例:

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:浮点数的四舍五入

题目描述:
输入一个浮点数 x(0 ≤ 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),输出A+B的值。

输入示例:

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,表示球的半径,计算球体积并保留三位小数(公式:v=3/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。

http://www.lryc.cn/news/533010.html

相关文章:

  • 【R语言】环境空间
  • 【系统架构设计师】分布式数据库透明性
  • openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包
  • OpenCV:图像修复
  • QT全局所有QSS样式实时切换
  • MySQL三大版本的演进
  • 利用 IMU 估计人体关节轴向和位置 —— 论文推导
  • 脚本一键生成管理下游k8s集群的kubeconfig
  • 数据库系统概念第六版记录 三
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-files.py
  • 微信小程序案例1——制作猫眼电影底部标签导航栏
  • 【大数据技术】搭建完全分布式高可用大数据集群(Kafka)
  • 【服务器知识】如何在linux系统上搭建一个nfs
  • 图片画质增强:轻松提升画质
  • vscode快速接入deepseek 实践操作
  • mapbox进阶,添加绘图扩展插件,绘制圆形
  • Cursor 与多语言开发:全栈开发的利器
  • 2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品
  • FPGA的IP核接口引脚含义-快解
  • 数据库高安全—审计追踪:传统审计统一审计
  • 机器学习 - 需要了解的条件概率、高斯分布、似然函数
  • Spring Boot Web 入门
  • 神经网络|(八)概率论基础知识-二项分布及python仿真
  • 【面试场景】MySQL分布式主键选取
  • 执行git stash drop stash@{x} 时出现error: unknown switch `e‘ 的解决方式
  • 链表和 list
  • windows 蓝牙驱动开发-传输总线驱动程序常见问题
  • Qt修仙之路2-1 炼丹初成
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue宠物预约上门服务预约平台
  • 无线AP之详解(Detailed Explanation of Wireless AP)