蓝桥杯 前缀表达式 C++算法训练 HERODING的蓝桥杯之路

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
  输入格式:输入只有一行,即一个前缀表达式字符串。
  输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。
  输入输出样例
样例输入

  • 5 2
    样例输出
    7

解题思路:
这是一道大“水”题,我不知道为什么会出现在算法训练中。其实前缀表达式的问题可以很复杂,如加减乘除括号等综合运算,那么算法就很复杂了。但是实现过程也并不难,比如可以用两个栈,一个存储输入的数字,另一个存储运算符。当然对于这一题,if else判断语句即可。代码如下:

#include<bits/stdc++.h>

using namespace std;

int main() {
	char s;
	int a,b;
	cin >> s >> a >> b;
	if(s == '+'){
		cout << a + b;
	}
	else if(s == '-'){
		cout << a - b;
	}
	else if(s == '*'){
		cout << a * b;
	}
	else{
		cout << a / b;
	}	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/HERODING23/article/details/106167257