CCF 201903-2 二十四点 100分

Posted 登登登ccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF 201903-2 二十四点 100分相关的知识,希望对你有一定的参考价值。

用一个栈来存放数字,遍历字符串

若遇到数字则直接推入栈中

若遇到乘除符号则取出栈顶元素,然后将它与乘除符号做运算后的结果数字推入栈中

若遇到加减符号则将加减符号后的数字直接推入栈中(减号推入负数)

字符串遍历完成后,把栈中所有的数字累加到sum,判断sum是否等于24,输出Yes或No即可

#include <bits/stdc++.h>

using namespace std;

int main() {
	int n;
	cin>>n;
	for(int i=0; i<n; i++) {
		stack<int> s;
		string str;
		cin>>str;

		for(int j=0; j<7; j++) {

			if(isdigit(str[j]))
				s.push(str[j]-'0');

			else if(str[j]=='x'||str[j]=='/') {
				int t=s.top();
				s.pop();

				if(str[j]=='x')
					s.push(t*(str[++j]-'0'));

				if(str[j]=='/')
					s.push(t/(str[++j]-'0'));

			} else if(str[j]=='+' || str[j]=='-') {
				if(str[j]=='+')
					s.push(str[++j]-'0');

				if(str[j]=='-')
					s.push(-(str[++j]-'0'));
			}
		}
		int sum=0;
		while(!s.empty()) {
			sum+=s.top();
			s.pop();
		}
		cout<<(sum==24?"Yes":"No")<<endl;
	}
	return 0;
}

 

以上是关于CCF 201903-2 二十四点 100分的主要内容,如果未能解决你的问题,请参考以下文章

CSP 201903-2 二十四点 python (python有如神助)

201903-2 二十四点

CSP201903-2二十四点

ccf20190302-二十四点

二十四点

二十四点游戏