zoukankan      html  css  js  c++  java
  • ccf 20190302

    题解:重点是考虑运算符号的优先级,乘除优于加减。

    用栈来维护,最后在把栈里的元素相加

    ①遇到数字直接进栈

    ②遇到负号,取下一个数的相反数进栈,然后跳过下一个数

    ③遇到乘号,取弹出栈顶元素p,取下一个元素q,计算p*q进栈,跳过下一个数

    ④遇到除号,取弹出栈顶元素p,取下一个元素q,计算p/q进栈,跳过下一个数

    ⑤最后,栈非空时,累加,得到的结果和24对比即可

    注意:字符串的字符-'0'即可得到相应的整数;还有栈没有clear()

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main(){
        string s;
        stack<int> num;
        int r;
        int n;
        while(scanf("%d",&n)!=EOF){
            for(int i=1;i<=n;i++){
                cin >> s;
                r=0;
                for(int j=0;j<7;j++){
                    if(s[j]-'0' >=0 && s[j]-'0'<=9)    num.push(s[j]-'0');
                    if(s[j]=='-'){
                        int k = s[j+1]-'0';    
                        k=-k;            //取下一个数的相反数放入栈中,当成负数 
                        num.push(k);
                        j++;        //直接跳过下一个数 
                    }
                    if(s[j]=='x'){        //乘除直接计算,压到栈里 
                        int p=num.top();
                        num.pop();
                        int q=s[j+1] -'0';
                        int t=p*q;
                        num.push(t);
                        j++;
                    }
                    if(s[j]=='/'){
                        int p=num.top();
                        num.pop();
                        int q=s[j+1] -'0';
                        int t=p/q;
                        num.push(t);
                        j++;
                    }                
                }
                while(!num.empty()){
                    int t=num.top();
                    num.pop(); 
                    r+=t;
                }
                if(r==24)    printf("Yes
    ");
                else    printf("No
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    WebApi Owin SelfHost OAuth2
    HTML5 localStorage、sessionStorage 作用域
    Owin WebApi版本控制
    C# Guid 16位 唯一
    C# TimeSpan获取 年月
    ASP.NET Web Api OwinSelfHost Restful 使用
    UrlRouteModule
    asp.net 代码 注意点
    JS小问题总结
    JS中javascript:void(0)真正含义
  • 原文地址:https://www.cnblogs.com/shiliuxinya/p/12172601.html
Copyright © 2011-2022 走看看