【Openjudge】你波兰表达式(递归)

思路很简单,其中用了一个新手不会用的函数,cin.putback(),各位自行百度一下,这里起的作用其实相当于把字符串形式的数字转换成真正的数字。

#include
#include
using namespace std;

double nPoland();

int main()
{
	printf("%f\n",nPoland());
	return 0;
}

double nPoland()
{
	char c;
	cin>>c;
	switch(c)
	{
	case '+':
		return nPoland()+nPoland();
	case '-':
		return nPoland()-nPoland();
	case '*':
		return nPoland()*nPoland();
	case '/':
		return nPoland()/nPoland();
	}
	cin.putback(c);
	double n;
	cin>>n;
	return n;
}


你可能感兴趣的:(Openjudge)