分析:学过数据结构的应该都可以做出来,这就是一个典型的栈的应用
#include<iostream>
#include<stack>
using namespace std ;
int main()
{
int n ;
cin>>n ;
char str[10] ;
while(n--)
{
stack<int>s1 ;
stack<char>s2 ;
cin>>str ;
for(int i=0;i<7;i++)
{
int a = 0 ;
int b = 0 ;
int c = 0 ;
if(str[i]>'0'&&str[i]<='9')
{
a = str[i]-'0' ;
s1.push(a) ;
}
if(str[i]=='+')
{
s2.push(str[i]) ;
}
if(str[i]=='-')
{
s2.push('+') ;
a = a-(str[i+1]-'0');
s1.push(a) ;
i++ ;
}
if(str[i]=='x')
{
a = s1.top();
s1.pop() ;
b = str[i+1]-'0' ;
c = a*b ;
s1.push(c) ;
i++ ;
}
if(str[i]=='/')
{
a = s1.top();
s1.pop() ;
b = str[i+1]-'0' ;
c = a/b ;
s1.push(c) ;
i++ ;
}
//printf("%d %d %d\n",a,b,c) ;
}
while(!s2.empty())
{
int a = 0 ;
int b = 0 ;
a = s1.top() ;
s1.pop() ;
b = s1.top() ;
s1.pop() ;
s2.pop() ;
s1.push(a+b) ;
}
int x = s1.top() ;
//printf("%d\n",x) ;
if(s1.top()==24)
printf("Yes\n") ;
else
printf("No\n") ;
}
return 0 ;
}