蓝桥杯历年省赛真题
点击链接免费加入题单
输入输出
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class InputOutput {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
String line = in.readLine(); // 输入一行字符
out.println(line); // 输出并换行
out.flush(); // 在控制台输出,不要忘记这句!
}
}
多组输入
我们在输入输出的时候要遵守题目的输入输出格式规范常见的有以下几种输入方式
有条件的多组输入
奇偶统计
- 题目描述
给你若干个数字,最后一个数字是 0 0 0,让你统计这些数字中有有多少个偶数,和所有奇数的和。
- 输入格式
一行,若干个数字,最后一个数字是 0 0 0
- 输出格式
第一行是这些数字中的偶数的个数
第二行是这些数字中奇数的总和
- 样例
输入
12 53 72 3 9 94 36 54 28 99 93 36 6 0
输出
8
257
- 题目思路与代码
利用while循环加if分支语句进行判断当输入的数字为 0
的时候break跳出循环
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n, num_even = 0, sum_odd = 0;
while (scanner.hasNextInt()) {
n = scanner.nextInt();
if (n == 0) break; // 0的时候结束循环
else {
if (n % 2 == 0) num_even++;
else sum_odd += n;
}
}
System.out.println(num_even);
System.out.println(sum_odd);
scanner.close();
}
}
无条件的多组输入
奇偶统计改
题目同上,删去了以 0
作为循环结束的条件
- 题目思路与代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n, numEven = 0, sumOdd = 0; // 初始化变量,记录偶数个数和奇数和
// 循环读取输入直到遇到文件结束符
while (scanner.hasNext()) {
n = scanner.nextInt(); // 读取下一个整数
if (n % 2 == 0) // 如果是偶数
numEven++; // 偶数个数加一
else
sumOdd += n; // 奇数加到奇数和中
}
System.out.println(numEven); // 输出偶数个数
System.out.println(sumOdd); // 输出奇数和
}
}
读入带空格的字符串
作文标题
- 题目思路
利用 getline
读入空格,利用字符串的 size()
函数求出字符串长度,for循环遍历非空格的字符
- 代码
import java.util.Scanner; // 导入 Scanner 类
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建一个 Scanner 对象用于从标准输入读取数据
String str = scanner.nextLine(); // 读取一行输入字符串
int cnt = 0; // 初始化计数器,用于统计非空格字符的个数
int n = str.length(); // 获取输入字符串的长度
// 遍历字符串的每一个字符
for (int i = 0; i < n; i++) {
// 如果当前字符不是空格,则计数器加一
if (str.charAt(i) != ' ') {
cnt++;
}
}
System.out.println(cnt); // 输出非空格字符的个数
scanner.close(); // 关闭 Scanner 对象
}
}
拓拓在打字
解法1
- 代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取一行输入
String s = scanner.nextLine();
// 遍历字符串中的每个字符
for (int i = 0; i < s.length(); i++) {
// 如果当前字符不是空格,或者当前字符是空格但下一个字符不是空格
if (s.charAt(i) != ' ' || (i < s.length() - 1 && s.charAt(i + 1) != ' ')) {
// 输出当前字符
System.out.print(s.charAt(i));
}
}
scanner.close();
}
}
解法2
- 代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建一个 Scanner 对象用于从标准输入读取数据
while (scanner.hasNext()) { // 循环读取输入直到遇到文件结束符
String str = scanner.next(); // 读取下一个字符串
System.out.print(str + " "); // 输出字符串并添加一个空格
}
scanner.close(); // 关闭 Scanner 对象
}
}
字符串与数字的转换
作文标题改
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取第一行输入,表示字符串的长度
String t = scanner.nextLine();
// 读取第二行输入,表示字符串内容
String str = scanner.nextLine();
int cnt = 0;
// 将字符串转换为整数,表示字符串的长度
int n = Integer.parseInt(t);
// 循环遍历字符串,并计算非空格字符的个数
for (int i = 0; i < n; i++) {
if (str.charAt(i) != ' ') {
cnt++;
}
}
// 输出结果
System.out.println(cnt);
scanner.close();
}
}
下面提供了java数字转字符串的程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取输入的整数
int n = scanner.nextInt();
// 将整数转换为字符串
String t = String.valueOf(n);
// 输出转换后的字符串
System.out.println(t);
scanner.close();
}
}