E. 【入门】A+B-C+D

    传统题 1000ms 256MiB

【入门】A+B-C+D

比赛已经结束。新提交将被视为补题提交,不计入比赛成绩。

题目描述

输入一个只包含加法和减法的数学表达式,输出表达式的答案。

提示:

  • 如果你没有思路,可以尝试补全下面的代码(这并不最简单的方法,但是可以通过此题)
string s;
cin >> s;

// 在 s 前面多加一个 +
s = "+" + s;
long long n = s.size(), ans = 0;
for (int i = 0; i < n; i++) {
    // 每次遍历到 + (或者 -)
    // 就顺便把后面的数处理出来
}
  • 你可以通过下面的方法,将字符 '1' 转化为数字 1
string s = "123456";
int x = s[0] - '0';  // 将 s[0] 转化为对应的数字

  • 当然,如果你有更简单的方法,请忽略上面的内容。。。。。。

输入格式

一行为一个不包含空格的数学表达式。

输出格式

输出表达式的答案。

1+2-3+4
4
1000000000-33333333+1000000000+3333
1966670000
1000000000+1000000000+1000000000
3000000000

数据规模与约定

对于 100%100\% 的数据,数学表达式的字符数量不超过 10410^4,数学表达式中仅包含加法和减法,数学表达式中的数都在 01090\sim 10^9 范围内。

  • 子任务 1(30 分):表达式中仅包含加法
  • 子任务 2(30 分):数学表达式中的数都是一位数
  • 子任务 3(40 分):没有特殊限制