题解 | #简单计算器#

简单计算器

https://www.nowcoder.com/practice/5759c29a28cb4361bc3605979d5a6130

#include <iostream>
#include <stack>
#include <iomanip>
using namespace std;
stack<char> opetor;
stack<double> digit;
bool isdigit(char x){
    if(x>='0'&&x<='9') return true;
    else return false;
}
double getdigit(string x,int& i){
    int r=0;
    while(isdigit(x[i])){
        r=r*10+x[i]-'0';
        i++;
    }
    return double(r);
}
int priority(char x){
    if(x=='#') return 1;
    else if(x=='$') return 2;
    else if(x=='+'||x=='-') return 3;
    else if(x=='*'||x=='/') return 4;
    else return -1;
}
double getvalue(double x,double y,char o){
    if(o=='+') return x+y;
    else if(o=='-') return x-y;
    else if(o=='*') return x*y;
    else return x/y;
}
int main() {
    string x;
    while(getline(cin,x) && x!="0"){
        opetor.push('#');
        x=x+'$';
        int i=0;
        while(i<x.length()){
            if(x[i]==' ') {
                i++;
            }
            else if(isdigit(x[i])){
                digit.push(getdigit(x,i));
            }
            else{
                if(priority(x[i])>priority(opetor.top())){
                    opetor.push(x[i]);
                    i++;
                }
                else{
                    double d2=digit.top();
                    digit.pop();
                    double d1=digit.top();
                    digit.pop();
                    double r=getvalue(d1,d2,opetor.top());
                    opetor.pop();
                    digit.push(r);
                }
            }
        }
        printf("%.2f",digit.top());
        cout<<endl;
    }
}

全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
我的人生算是废了,23届裸辞空档一年,存款只能坚持几个月了,找不到像样的工作了,人生何去何从。
梦想是成为七海千秋:这大环境下为什么要裸辞呀,风险真的挺大的,而且社招的话23届没有太多的竞争力,不过既然已经裸辞了就不要焦虑慢慢找。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务