2 solutions
-
0
简单分析
💡关键思路:这道题是要让计算机读懂加法式子然后算出结果。我们可以把输入的式子按“+”和“=”分割,把每个数字提取出来相加,最后再把原来的式子和结果输出。 ⚠️易错点:要注意提取数字的时候不能出错,特别是数字不止一位的情况。另外,输出结果的时候要保证和原来的式子格式一致。
详细解题报告
🌍题目
让计算机自己读懂式子,然后进行N个数的加法运算。 输入格式:如“1+2+3+4+5+6+7+8+9+10=” 。 输出格式:如“1+2+3+4+5+6+7+8+9+10=55” 。 样例输入1:“12+25+63=” 样例输出1:“12+25+63=100”
📋题意分析
这道题就是要我们编写一个程序,让它读取一个包含多个数字相加的式子,把这些数字加起来,最后输出原来的式子以及相加的结果。式子是用“+”连接数字,最后以“=”结尾。
⭐难度等级
★,这道题对于有一定编程基础的同学来说比较简单,主要是数字的提取和加法运算。
💡解题思路
- 读取输入的式子。
- 把式子按“+”和“=”分割,提取出每个数字。
- 把这些数字相加,得到结果。
- 输出原来的式子和结果。
💭解题反思
在解题过程中,要特别注意数字的提取。因为数字可能不止一位,所以不能简单地按字符处理。另外,输出的时候要保证格式正确,和样例一致。
🖥️参考程序
#include<bits/stdc++.h> using namespace std; int main() { string s; // 定义一个字符串s,用来存储输入的式子 cin >> s; // 读取输入的式子 int sum = 0; // 定义一个整数sum,用来存储相加的结果,初始化为0 int num = 0; // 定义一个整数num,用来临时存储当前提取的数字,初始化为0 string original = s; // 定义一个字符串original,用来保存原来的式子 for (int i = 0; i < s.length(); i++) { // 遍历输入的式子 if (s[i] >= '0' && s[i] <= '9') { // 如果当前字符是数字 num = num * 10 + (s[i] - '0'); // 把数字拼接起来 } else if (s[i] == '+' || s[i] == '=') { // 如果当前字符是“+”或者“=” sum += num; // 把当前数字加到总和里 num = 0; // 把临时数字重置为0 } } cout << original << sum << endl; // 输出原来的式子和结果 return 0; }
- 1
Information
- ID
- 1008
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 4
- Tags
- # Submissions
- 35
- Accepted
- 18
- Uploaded By