1.逆波兰表达式
package 第五天递归;
import java.util.Scanner;
public class 逆波兰 {
//static int [] a=new int[20];
static Scanner scanner=new Scanner(System.in);
static double bolan(){
String s=scanner.next();
switch (s.charAt(0)){
case '+':return bolan()+bolan();
case '-':return bolan()-bolan();
case '*':return bolan()*bolan();
case '/':return bolan()/bolan();
default:return Double.parseDouble(s);
}
}
public static void main(String[] args) {
System.out.printf("%fn",bolan());
}
}
注意事项:
1.String和char的区别
字符串和字符
2.next和nextLine的区别
一个忽略空行,一个不忽略
3.String,charAt(int i)寻找指定为的字符
4.double类型的输出(%f)
5.将字符串转换成double类型的数字Double.parsedouble
算法思想:
看代码
2.表达式求值
解题代码:
package 第五天递归;
import java.util.Scanner;
public class 表达式求职 {
static Scanner scanner=new Scanner(System.in);
static char[] num;
static int i=0;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
num=scanner.nextLine().toCharArray();//读入一行表达式将它转换成一个char数组
System.out.println(expression_value());
}
static int factor_value(){//求一个因子的值
int result=0;
char s=num[i];
if(s=='('){
i++;
result=expression_value();
if(i
注意事项:scanner.nextLine().toCharArray();//读入一行表达式将它转换成一个char数组



