P10372 [AHOI2024 初中组] 家庭作业

题目传送门

思路:

  1. 读取输入:首先读取输入的行数 ( T ),然后读取接下来的 ( T ) 行,每行包含一个加法算式。
  2. 解析算式:对于每个算式,我们需要将其解析为三个部分:加数 ( a )、加数 ( b ) 和和 ( c )。
  3. 验证算式:计算 ( a + b ) 的值,并与 ( c ) 进行比较,判断算式是否正确。
  4. 输出结果:根据验证结果,输出 "Right!" 或 "Wrong!"。

具体实现步骤如下:

  1. 读取输入:使用 input()/cin/readIn()函数读取输入。
  2. 解析算式:使用字符串操作(如 split 方法)将算式分解为 ( a )、( b ) 和 ( c )。
  3. 验证算式:将 ( a ) 和 ( b ) 转换为整数,计算它们的和,并与 ( c ) 进行比较。
  4. 输出结果:根据比较结果输出相应的字符串。

代码&解释:

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

代码解释:

  1. 读取输入的行数:使用 cin >> num 读取输入的行数 ( T )。
  2. 循环读取每个算式:使用 for 循环读取每个算式,循环次数为 ( T )。
  3. 读取每个算式:使用 cin >> a >> chsign >> b >> strsign >> c 读取每个算式,其中 ab 和 c 是短整型变量,chsign 和 strsign 是字符变量,用于读取加号和等号。
  4. 验证算式:计算 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.

代码解释:

  1. 读取输入的行数:使用 readln(num) 读取输入的行数 ( T )。
  2. 循环读取每个算式:使用 for 循环读取每个算式,循环次数为 ( T )。
  3. 读取每个算式:使用 readln(input) 读取每个算式作为一个字符串。
  4. 解析算式
    • 使用 pos('+', input) 找到加号的位置 pos1
    • 使用 pos('=', input) 找到等号的位置 pos2
    • 使用 copy 函数和 Val 函数分别提取 ab 和 c 的值。Val 函数将字符串转换为整数,并返回转换状态到 code 变量中。
  5. 验证算式:计算 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)

代码解释:

  1. 定义函数 check_equations

    • 参数 T 表示输入的行数,equations 是一个包含所有算式的列表。
    • results 列表用于存储每个算式的验证结果。
  2. 循环处理每个算式

    • 使用 split('+') 将算式按加号分割,得到 parts 列表。
    • parts[0] 是第一个加数 a,将其转换为整数。
    • parts[1] 是剩余部分,使用 split('=') 将其按等号分割,得到 b_c 列表。
    • b_c[0] 是第二个加数 b,将其转换为整数。
    • b_c[1] 是和 c,将其转换为整数。
  3. 验证算式

    • 计算 a + b 的值,并与 c 进行比较。
    • 如果相等,将 "Right!" 添加到 results 列表中。
    • 否则,将 "Wrong!" 添加到 results 列表中。
  4. 返回结果

    • 函数返回 results 列表,包含每个算式的验证结果。
  5. 读取输入

    • 使用 input() 读取输入的行数 T
    • 使用列表推导式读取每个算式,并去除首尾空白字符。
  6. 检查并输出结果

    • 调用 check_equations 函数,传入 T 和 equations,得到 results 列表。
    • 遍历 results 列表,逐行输出每个算式的验证结果。

 希望这些代码能帮助您理解并解决这个问题,如果有问题,请随时提问。

  蒟蒻题解,神犇勿喷

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值