题目描述: 请帮助禾木计算一道加法算式。(加法算式里只有加法运算,仅包含数字和加 号) 输入: 共一行,一道加法算式 输出: 共一行,一个整数m,表示加法算式的计算结果 输入样例: 1+2+10+20 输出样例:
时间: 2024-12-18 21:15:31 浏览: 6
题目让你编写一个程序,用于计算给定的加法算式的结果。这个算式只包含数字和加号,并且没有括号。你需要接收用户输入的一行字符串作为输入,然后解析这个字符串,逐个累加其中的数字。
例如,如果输入是 `1+2+10+20`,程序需要将其视为 `1 + 2 + 10 + 20` 进行计算,最终输出结果 `33`。
以下是一个简单的C++函数实现这个功能:
```cpp
#include <string>
#include <sstream>
int calculateSum(const std::string& formula) {
int currentNum = 0;
int sum = 0;
char prevChar; // 存储上一个字符
for (char c : formula) {
if (isdigit(c)) { // 判断字符是否为数字
currentNum = currentNum * 10 + (c - '0'); // 累加数字
} else if (c == '+' && prevChar != '+') { // 当遇到加号且不是连续的加号
sum += currentNum;
currentNum = 0; // 重置当前数字
}
prevChar = c;
}
// 处理最后一个数字
if (currentNum > 0) {
sum += currentNum;
}
return sum;
}
// 示例
int main() {
std::string input = "1+2+10+20";
int result = calculateSum(input);
std::cout << "计算结果: " << result << std::endl;
return 0;
}
```
当输入 `1+2+10+20` 时,上述代码会输出 `33`。
阅读全文