题目传送门
思路:
- 读取输入:首先读取输入的行数 ( T ),然后读取接下来的 ( T ) 行,每行包含一个加法算式。
- 解析算式:对于每个算式,我们需要将其解析为三个部分:加数 ( a )、加数 ( b ) 和和 ( c )。
- 验证算式:计算 ( a + b ) 的值,并与 ( c ) 进行比较,判断算式是否正确。
- 输出结果:根据验证结果,输出 "Right!" 或 "Wrong!"。
具体实现步骤如下:
- 读取输入:使用
input()/cin/readIn()
函数读取输入。 - 解析算式:使用字符串操作(如
split
方法)将算式分解为 ( a )、( b ) 和 ( c )。 - 验证算式:将 ( a ) 和 ( b ) 转换为整数,计算它们的和,并与 ( c ) 进行比较。
- 输出结果:根据比较结果输出相应的字符串。
代码&解释:
c++代码:
#include<iostream>
using namespace std;
short a, b, c;
char chsign, strsign;
short num;
int main() {
cin >> num; // 读取输入的行数
for (short i = 1; i <= num; i++) {
cin >> a >> chsign >> b >> strsign >> c; // 读取每个算式
if (a + b == c) cout << "Right!" << endl; // 验证算式是否正确
else cout << "Wrong!" << endl;
}
return 0;
}
代码解释:
- 读取输入的行数:使用
cin >> num
读取输入的行数 ( T )。 - 循环读取每个算式:使用
for
循环读取每个算式,循环次数为 ( T )。 - 读取每个算式:使用
cin >> a >> chsign >> b >> strsign >> c
读取每个算式,其中a
、b
和c
是短整型变量,chsign
和strsign
是字符变量,用于读取加号和等号。 - 验证算式:计算
a + b
的值,并与c
进行比较,如果相等则输出 "Right!",否则输出 "Wrong!"。
Pascal代码:
program CheckEquations;
var
input: string;
a, b, c: integer;
code: integer;
pos1, pos2: integer;
num: integer;
i: integer;
begin
readln(num); // 读取输入的行数
for i := 1 to num do
begin
readln(input); // 读取每个算式
pos1 := pos('+', input); // 找到加号的位置
pos2 := pos('=', input); // 找到等号的位置
Val(copy(input, 1, pos1 - 1), a, code); // 提取a的值
Val(copy(input, pos1 + 1, pos2 - pos1 - 1), b, code); // 提取b的值
Val(copy(input, pos2 + 1, length(input) - pos2), c, code); // 提取c的值
if a + b = c then
writeln('Right!') // 验证算式是否正确
else
writeln('Wrong!');
end;
end.
代码解释:
- 读取输入的行数:使用
readln(num)
读取输入的行数 ( T )。 - 循环读取每个算式:使用
for
循环读取每个算式,循环次数为 ( T )。 - 读取每个算式:使用
readln(input)
读取每个算式作为一个字符串。 - 解析算式:
- 使用
pos('+', input)
找到加号的位置pos1
。 - 使用
pos('=', input)
找到等号的位置pos2
。 - 使用
copy
函数和Val
函数分别提取a
、b
和c
的值。Val
函数将字符串转换为整数,并返回转换状态到code
变量中。
- 使用
- 验证算式:计算
a + b
的值,并与c
进行比较,如果相等则输出 "Right!",否则输出 "Wrong!"。
Python代码:
def check_equations(T, equations):
results = []
for equation in equations:
parts = equation.split('+')
a = int(parts[0])
b_c = parts[1].split('=')
b = int(b_c[0])
c = int(b_c[1])
if a + b == c:
results.append("Right!")
else:
results.append("Wrong!")
return results
# 读取输入
T = int(input())
equations = [input().strip() for _ in range(T)]
# 检查并输出结果
results = check_equations(T, equations)
for result in results:
print(result)
代码解释:
-
定义函数
check_equations
:- 参数
T
表示输入的行数,equations
是一个包含所有算式的列表。 results
列表用于存储每个算式的验证结果。
- 参数
-
循环处理每个算式:
- 使用
split('+')
将算式按加号分割,得到parts
列表。 parts[0]
是第一个加数a
,将其转换为整数。parts[1]
是剩余部分,使用split('=')
将其按等号分割,得到b_c
列表。b_c[0]
是第二个加数b
,将其转换为整数。b_c[1]
是和c
,将其转换为整数。
- 使用
-
验证算式:
- 计算
a + b
的值,并与c
进行比较。 - 如果相等,将 "Right!" 添加到
results
列表中。 - 否则,将 "Wrong!" 添加到
results
列表中。
- 计算
-
返回结果:
- 函数返回
results
列表,包含每个算式的验证结果。
- 函数返回
-
读取输入:
- 使用
input()
读取输入的行数T
。 - 使用列表推导式读取每个算式,并去除首尾空白字符。
- 使用
-
检查并输出结果:
- 调用
check_equations
函数,传入T
和equations
,得到results
列表。 - 遍历
results
列表,逐行输出每个算式的验证结果。
- 调用