简单计算器

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 18610    Accepted Submission(s): 6562

Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2 4 + 2 * 5 - 7 / 11 0
Sample Output
3.00 13.36
Source
浙大计算机研究生复试上机考试-2006年
Recommend
JGShining   |   We have carefully selected several similar problems for you:  1230 1256 1372 1239 1226 
赵同学 又开始刷oj了,听宇神说弱校oj要上线了,好好练练,凑齐兵马,一天刷爆:
贴一个java版的代码:
package com.it.method;import java.util.Scanner;
import java.util.Stack;
/*栈的应用,* 思路为,如果只是一次运算,类似于加或者减,那么 可以将数值直接进入栈,不需要其他操作* 如果为多次运算,比如说乘或者除,那么先被乘数(m*n中的m)入栈,检测下一个字符,如果为乘号* 那么先将栈顶元素取出,记做为a,然后消除栈顶元素,然后再读取乘数(m*n中的n),将两者的和当做结果进入栈* 除法类似*/
//public class Main {//提交时  用这个
public class Test02
{public static void main(String args[]){Scanner cin = new Scanner(System.in);while(cin.hasNext()){String str = cin.nextLine();String str1[];if(str.compareTo("0")==0)break;str1 = str.split(" ");Stack<Double> s = new Stack<Double>();//构建一个栈double m = Double.parseDouble(str1[0]);s.push(m);for(int i=1;i<str1.length;i++){if(i%2==1){if(str1[i].compareTo("+")==0){double help = Double.parseDouble(str1[i+1]);s.push(help);}if(str1[i].compareTo("-")==0){double help = Double.parseDouble(str1[i+1]);s.push(-help);}if(str1[i].compareTo("*")==0){double help = Double.parseDouble(str1[i+1]);double ans = s.peek();//取出栈顶元素s.pop();//消栈ans*=help;s.push(ans);}if(str1[i].compareTo("/")==0){double help = Double.parseDouble(str1[i+1]);double ans = s.peek();s.pop();ans/=help;s.push(ans);}}}double ans = 0d;while(!s.isEmpty()){ans+=s.peek();s.pop();}System.out.println(String.format("%.2f", ans));}cin.close();}}

java 杭电1237简单计算器相关推荐

  1. HDU - 1237简单计算器(输出问题)

    简单计算器 HDU - 1237 题目 题解 代码 题目 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行 ...

  2. 计算器java鼠标按钮事件_[java]ItemEvent事件:简单计算器

    代码: Example9_8.java public class Example9_8 { public static void main(String args[]){ WindowOperatio ...

  3. HDU 1237 简单计算器

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. java方法重载和简单计算器

    Java方法 **方法重载:**一个类中,有相同的函数名称,但形参不同的函数 重载规则: 方法名称必须相同 参数列表必须不同(个数不同,类型不同,参数排列顺序不同等) 返回类型可以相同可以不同 pub ...

  5. java方法练习之简单计算器

    关于导包的描述正确的是 C A. 一个源文件中只能有一条导包语句 B. 导包语句必须写在源文件的第一行有效语句 C. 导包语句的关键字为 import D. 位于java.util 包中的类无需导包, ...

  6. 『杭电1237』简单计算器

    Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符 ...

  7. java实现计算器框架_[Java小程序] 实现简单计算器

    这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练.感觉写完后不是很好,如果路过的哪位高手给点建议,小弟万分感激啊. 由于期末来了,没太多时间, ...

  8. Java 手写一个简单计算器(1)

    用java的awt和swing实现了界面, 结构比较简单,用GridLayout布局实现 文本框+3行按钮+3行按钮: 按钮用字符串数组和for循环 后两个用JPanel存放 然后加到框架中即可 由于 ...

  9. java算软件工程_Java简单计算器的实现

    Java简易计算器的实现,供大家参考,具体内容如下 操作流程 用户通过输入要被运算的数字和运算符,进行数字的运算,例如用户输入2+2则会输出4. 加法运算截图 减法运算截图 乘法运算截图 除法运算截图 ...

最新文章

  1. 2、安装Lync Server 2013
  2. 浅谈SD-WAN未来的发展方向
  3. jvm性能调优实战 -56没有WHERE条件的SQL语句引发的OOM MAT 排查步骤
  4. zabbix学习笔记(4)
  5. 嵌入式linux设计师,make在linux——《嵌入式linux设计与应用》
  6. 7-7 六度空间(30 分)
  7. Base64编码及其作用
  8. gtest 学习之五 测试用例中定义类
  9. NLP 事件抽取综述(中)—— 模型篇
  10. jquery easyui里datagrid用法记录
  11. IntelliJ IDEA 2020.1 首个稳定版重磅发布!
  12. java如何获取wsdl文件,如何使用Java获取WSDL文件中的复杂类型?
  13. 红巨星粒子插件:Red Giant Trapcode Suite 15 for Mac
  14. Basic4IOS B4I开发原生iOS,Visual Studio中编程
  15. 图像中的Exif信息及其处理
  16. 主板音频接口连接说明
  17. 计算机类软件工程与测绘类遥感专业的薪水,2018遥感科学与技术专业就业前景和就业方向分析...
  18. 模拟狗狗的“魔鬼步伐”,比更真还更真
  19. 前端程序员偷懒工具:emmet语法
  20. wstmart电子商务系统怎么样

热门文章

  1. 深度浅析:国民产业链两大泡沫
  2. js和php中几种生成验证码的方式
  3. sql取得某日期内的数据
  4. java 多线程基础(一)
  5. 微信小程序怎么确定是息屏、返回、还是Home键操作?
  6. Aspose.Words对于Word的操作
  7. ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题
  8. Js 通过点击改变css样式
  9. jQuery学习笔记(二)
  10. Windows 2000服务器安全配置精华技巧