HDU1237 简单计算器 栈】的更多相关文章

http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单的栈的运用. 首先将数字和运算符分离,分别保存在两个数组中,然后按原来的式子的顺序,首先将第一个数和第一个运算符分别压 如个自的栈,然后判取出两个栈头部的元素,判断符号,如果是乘除就用当前数值乘取出的数字(优先),然后将乘后的数压入栈, 如果是加则将数和取出的数按原序入栈,如果减,就把新的数变负,将数和取出的数按原序入栈. 最后栈中所有元素的和就是结果. 1 #include<stdio.h> 2…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 题目分析: 我们可以利用栈来解决这道问题. 首先,对于我们来说,这道题目比较简单,没有用到小括号. 对于遇到小括号的情况,我们可能会用递归来实现"有小括号先求小括号里面的"的效果. 但是因为这里没有,所以我们只需要处理"加减乘除"就可以了, 可以发现,"加减&quo…
目录 题目地址 题干 代码和解释 参考 题目地址 hdu1237 题干 代码和解释 解本题时使用了STL 栈,要记得使用#include<stack>. 解本题时使用了isdigit()函数,要使用#include<ctype.h> 逆波兰表达式: 1.又叫后缀表达式.我们平时使用的叫做中缀表达式,可以由下图对比理解. 2.栈的操作: 如果当前字符为变量或者为数字,则压栈, 如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈 最后当扫描完后,栈里的就是结果. 本题方法--算符…
简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11955    Accepted Submission(s): 3896 Problem Description 读入一个仅仅包括 +, -, *, / 的非负整数计算表达式,计算该表达式的值.   Input 測试输入包括若干測试用例.每一个測试用例占一行,每行不超过200…
#1332 : 简单计算器 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 编写一个程序可以完成基本的带括号的四则运算.其中除法(/)是整除,并且在负数除法时向0取整.(C/C++/Java默认的除法就是向0取整,python默认的是向负无穷取整.) 例如计算 100 * ( 2 + 12 ) - (20 / 3) * 2, 结果是1388. 输入 一个长度不超过100的字符串,代表要计算的算式.包含数字0-9以及+-*/(). 输入保证计算过程不会超过32位有符号…
F - 简单计算器 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.    Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出.    Output 对每个测试用例输出…
简单计算器 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. Sample Input 1 + 2 4 + 2 * 5 - 7 / 11 0 Sample Output 3.0…
额,题目是中文的,题意就不用说了= =都看懂喽.写个字符串先把这行计算式存进去,不过不能存一个算一个,因为考虑到乘除法比加减法优先的原则,如果是加号减号就先存着等待计算,如果是乘号除号就直接算出来值就好了.然后,就想到了栈的思想了,写两个栈一个存符号一个存数字,如果是加减号留在栈里,如果是乘除号就直接运算完,符号不再入栈,数字直接得出结果再存入,这样第一遍循环过后就只剩下加减法了,不过这时候还不能直接算,因为栈里再出来的话是反的= =所以再写两个栈出来,把之前的内容反过来再运算就能得到结果了.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 思路: 首先要将中缀表达式转化成后缀表达式(逆波兰表达式),再进行计算 中缀表达式转后缀表达式的方法: 1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出.5.遇到其…
简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26553    Accepted Submission(s): 9626 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.   Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符…