问题标题: 酷町堂:2730 算术表达式

0
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

2730   算术表达式 经验值:400

不许抄袭,一旦发现,直接清空经验!

题目描述 Description

上面计算器的输入,你是不是觉得有些怪怪的?因为它不太符合我们地球人的表达习惯,我们算术表达式,其实是“中缀表达式”,即运算符在中间。但是外星人即不使用十进制,也不使用中缀表达式,他们还想请你编写一个可以直接计算算术表达式的程序。当然本着循序渐进的原则,只是计算包含加号的表达式。

输入描述 Input Description

一个加法表达式。

输出描述 Output Description

一个自然数x,表示表达式的值。

样例输入 Sample Input

1+2

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

数字不超过100

张恩泽在2020-10-19 18:00:30追加了内容
//CODE
//#pragma GCC optimize(3)
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string s;
int ans1, ans2;
int posf, posl;
int main() {
//	freopen ("题目名.in", "r", stdin);
//	freopen ("题目名.out", "w", stdout);
	cin >> s;
	s = " " + s + " ";
	for (int i = 0; i < s.size(); i ++) {
		if (s[i - 1] == ' ' && s[i] != ' ') {
			posf = i;
		}
		if (s[i] != ' ' && s[i + 1] == '+') {
			posl = i;
			string tmp = s.substr(posf, posl - posf + 1); //截取第一个数字
			for (int j = 0; j < tmp.size(); j ++) {
				ans1 = ans1 * 10 + (tmp[j] - '0');
			}
		}
		if (s[i - 1] == '+') {
			posf = i;
		}
		if (s[i] != ' ' && s[i + 1] == ' ') {
			posl = i;
			string tmp = s.substr(posf, posl - posf + 1);//截取第二个数字 
			for (int j = 0; j < tmp.size(); j ++) {
				ans2 = ans2 * 10 + (tmp[j] - '0');
			}
		}
	}
	cout << ans1 + ans2;
//	fclose (stdin);
//	fclose (stdout);
	return 0;//好习惯!
}

 

//CODE
//#pragma GCC optimize(3)
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
//	freopen ("题目名.in", "r", stdin);
//	freopen ("题目名.out", "w", stdout);
	int a, b;
	char s;
	cin >> a >> s >> b;
	cout << a + b; 
//	fclose (stdin);
//	fclose (stdout);
	return 0;//好习惯!
}

 

//CODE
//#pragma GCC optimize(3)
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
//	freopen ("题目名.in", "r", stdin);
//	freopen ("题目名.out", "w", stdout);
	double a, b;
	char s;
	cin >> a >> s >> b;
	cout << a + b; 
//	fclose (stdin);
//	fclose (stdout);
	return 0;//好习惯!
}

 

以上3个代码都是20分,求大佬们找错!


0
已采纳
黄依成
黄依成
中级天翼
中级天翼

要考虑多个数相加的情况

只不过python一行代码就行

print(input())

人生苦短,我用python

我要回答