题解 | 简单计算器

#include<iostream>
#include<string>
#include<stack>

using namespace std;

// 用&传值可在函数内改变函数外的值
double GetNumber(string str,int &index){
	double number=0;
	while(str[index]>='0' && str[index]<='9'){
		number=number*10+(str[index]-'0');
		index++;
	}
	return number;
}

int Priority(char c){
    int priority;
    
	if(c=='#')  priority=0;
	else if(c=='$') priority=1;
	else if(c=='+' || c=='-') priority=2;
	else if(c=='*' || c=='/') priority=3;

    return priority;
}

double Calculate(double a,double b,char operation){
    double result;

	if(operation=='+')  result=a+b;
	else if(operation=='-') result=a-b;
	else if(operation=='*') result=a*b;
	else if(operation=='/') result=a/b;

    return result;
}

int main(){
    string str;
    while(getline(cin,str)){
    	if(str=="0")    break;

    	stack<double> number;

    	stack<char> operation;
    	operation.push('#');
    	str+='$';

    	int index=0;
    	while(index<str.size()){
    		if(str[index]==' ')  index++;
    		else if(str[index]>='0' && str[index]<='9')  number.push(GetNumber(str,index));
    		else{
				if(Priority(str[index])>Priority(operation.top())){
					operation.push(str[index]);
					index++;
				}
				else{
					double b=number.top();
					number.pop();
					double a=number.top();
					number.pop();
					number.push(Calculate(a,b,operation.top()));
					operation.pop();
				}
			}
		}
		printf("%.2f\n",number.top());
	}

	return 0;
}
//http://t.cn/AiKoGS94

全部评论

相关推荐

点赞 评论 收藏
分享
在竞争激烈的职场中,创新思维是脱颖而出的关键。无论是解决问题、优化流程还是提出新的想法,创新思维都能让你在工作中展现出独特的价值。培养创新思维,不仅能让你在工作中更具竞争力,还能让求职简历更亮眼,轻松搞定offer。一、创新思维的重要性创新思维是职场中的一项重要能力,它不仅能帮助你解决复杂问题,还能让你在工作中提出新的想法和解决方案。在求职过程中,具备创新思维的求职者往往更受青睐,因为这意味着你能够为公司带来新的视角和价值。例如,在面试中,如果你能够展示自己在过往项目中如何通过创新思维解决问题,面试官会认为你具备很强的适应能力和创造力。在实际工作中,创新思维同样至关重要。无论是优化现有流程、开发新产品还是提出新的营销策略,创新思维都能帮助你找到更高效、更有效的方法。例如,在一个传统的产品开发项目中,通过创新思维,你可能会提出一种新的设计思路,从而提升产品的竞争力。这种能力不仅能提升你的工作效率,还能让你在团队中脱颖而出,成为值得信赖的成员。二、如何培养创新思维培养创新思维需要从多个方面入手。首先,学会打破常规。创新往往来自于对传统思维的挑战。例如,当你遇到一个复杂问题时,不要局限于传统的解决方案,尝试从不同的角度思考问题。你可以通过阅读跨领域的书籍、参加创新研讨会或与不同背景的人交流,拓宽自己的思维边界。其次,培养好奇心和学习能力。创新思维往往源于对新事物的好奇和对知识的渴望。保持对新技术、新趋势的关注,通过不断学习提升自己的知识储备。例如,定期阅读行业报告、参加在线课程或学习新的工具和技术,能够帮助你更好地理解行业动态,从而提出创新的想法。最后,通过实践提升创新能力。创新思维的提升离不开实际操作。你可以通过参与创新项目、提出改进方案或尝试新的工作方法来积累经验。每次实践后,总结经验教训,分析成功和失败的原因,逐步提升自己的创新能力。例如,在工作中,主动提出优化现有流程的想法,并通过实验验证其效果,积累创新经验。---三、创新思维在求职中的应用在求职过程中,创新思维的应用非常广泛。例如,在简历中,你可以突出自己在项目中如何通过创新思维解决问题或提出新的想法。如果你曾通过创新方法优化工作流程并取得显著成效,这些经历将大大提升你的竞争力。在面试中,创新思维同样能为你加分。面试官通常会问到你在工作中如何提出新的想法或解决问题。你可以通过具体的案例展示自己的创新思维,例如,如何通过创新设计提升产品的用户体验,或者如何通过新的营销策略提升销售额。此外,如果你在面试中提到自己曾通过创新思维解决团队面临的难题,面试官会认为你具备很强的适应能力和创造力。总之,创新思维是职场中的一项重要技能。通过打破常规、培养好奇心和学习能力以及通过实践积累经验,你不仅能提升自己的创新能力,还能在求职过程中轻松搞定offer,开启职场成功之路。#牛客AI配图神器#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务