手柄君的小阁

个人私货聚集地

蓝桥杯(大专组) 校内训练 1004.算术运算

本文最后更新于 2018 年 5 月 10 日,其中的内容可能有所发展或发生改变,敬请注意。

1004.算术运算

时长限制: 1000 MS 内存限制: 32768 KB

描述

通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
补充说明:
1. 操作数为正整数,不需要考虑计算结果溢出的情况。
2. 若输入算式格式错误,输出结果为“E”。

输入

输入由多组测试数据组成。第一行输入一个整数t,表示测试数据的组数。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。

输出

输出有t行,每行依次对应一组测试数据的运算结果。

示例输入

3
5 + 3
3 – 5
9 ++ 7

示例输出

8
-2
E

解题思路

由于“操作数”与“运算符”之间以一个空格隔开。
所以在获取操作数和运算符时可以直接用整行按照空格进行分割
读取分割后的第二组是不是运算符,第一组第三组是否是整数,
检查通过后运算即可。

Ac源码(Java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int times= sc.nextInt();
		sc.nextLine();
		String[] counts = new String[times];
		for (int i = 0; i < times; i++){
			counts[i] = sc.nextLine();
		}
		sc.close();
		String[] countsStrArr;
		for (String countsStr : counts){
			countsStrArr = countsStr.split(" ");
			switch(countsStrArr[1]){
			case "+":
				System.out.println(Integer.parseInt(countsStrArr[0]) + Integer.parseInt(countsStrArr[2]));
				break;
			case "-":
				System.out.println(Integer.parseInt(countsStrArr[0]) - Integer.parseInt(countsStrArr[2]));
				break;
			default:
				System.out.println("E");
				break;
			}
		}
	}
}

来一发吐槽