[编程题] 奇怪的表达式求值
2017-08-25 22:45
387 查看
常规的表达式求值,我们都会根据计算的优先级来计算。比如/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 )。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少
输入描述:
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
保证表达式都是合法的,排列规则如样例所示。
输出描述:
输出一个数,即表达式的值
输入例子1:
3+5*7
输出例子1:
56
解题思路
拆分字符串。
输入描述:
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
保证表达式都是合法的,排列规则如样例所示。
输出描述:
输出一个数,即表达式的值
输入例子1:
3+5*7
输出例子1:
56
解题思路
拆分字符串。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); if (str == null || str.length() == 0) { System.out.println(0); return; } int index = 0; while (str.charAt(index) != '+' && str.charAt(index) != '-' && str.charAt(index) != '*') { index++; } long result = Integer.valueOf(str.substring(0, index)); while (index < str.length()) { char operator = str.charAt(index); int start = ++index; < 4000 span class="hljs-keyword">while (index < str.length() && str.charAt(index) != '+' && str.charAt(index) != '-' && str.charAt(index) != '*') { index++; } int num = Integer.valueOf(str.substring(start, index)); switch (operator) { case '+': result += num; break; case '-': result -= num; break; case '*': result *= num; break; } } System.out.println(result); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String[] nums = str.split("\\+|-|\\*"); int count = 0, index = 0; long result = Integer.valueOf(nums[0]); while (count < nums.length - 1) { while (str.charAt(index) != '+' && str.charAt(index) != '-' && str.charAt(index) != '*') { index++; } char operator = str.charAt(index); switch (operator) { case '+': result += Integer.valueOf(nums[count + 1]); break; case '-': result -= Integer.valueOf(nums[count + 1]); break; case '*': result *= Integer.valueOf(nums[count + 1]); break; } count++; index++; } System.out.println(result); } }
相关文章推荐
- [编程题] 奇怪的表达式求值
- 【网易2017实习生编程题】 工作安排 集合 奇怪的表达式求值 涂棋盘 小易记单词
- 【网易2017实习生编程题】 工作安排 集合 奇怪的表达式求值 涂棋盘 小易记单词
- [编程题] 奇怪的表达式求值
- 奇怪的表达式求值--网易2017春招实习笔试编程题8
- 网易2017春招[编程题]奇怪的表达式求值@Java
- 网易笔试编程题(奇怪的表达式求值)
- 网易2017春招笔试——奇怪的表达式求值
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 网易面试题——奇怪的表达式求值
- 【网易2017春招】奇怪的表达式求值 解题报告
- 华为编程题之七:条件表达式求值
- 奇怪的表达式求值 (java实现)
- 网易2017春招编程题:奇怪的表达式求值 [python]
- 算法题/奇怪的表达式求值
- BJTUoj1029 表达式求值
- 线性表的实现与应用--表达式中缀转后缀并求值
- SCAU 8588 表达式求值
- 关于C/C++ 表达式求值顺序
- nyoj 35 表达式求值(栈)