首页 > 代码库 > 四则运算
四则运算
public class 四则运算 { public static String str = "";//保存题目的字符串 public static int num = 5;//每题中数的个数 public static int num_i = 0;//题目中已有数的个数 public static int numberRange = 100;//运算中数的最大取值 public static double sum = 0;//记录结果 public static void main(String[] args) { for (int i = 0; i < 50; i++) { GetQuestion(); System.out.print(i+1); System.out.print(". " + str + " "); System.out.print(sum); System.out.print(" "); System.out.println(); } } public static double jisuan(double sum,char fu[],int w,int t){ if(fu[(int)(Math.random()*4)]==‘+‘){ sum+=w; } if(fu[(int)(Math.random()*4)]==‘-‘){ if(t>50){ sum+=w; }else{ w-=sum; } } if(fu[(int)(Math.random()*4)]==‘*‘){ sum*=w; } if(fu[(int)(Math.random()*4)]==‘/‘){ if(t>50){ sum/=w; }else{ w/=sum; } } return sum; } private static void GetQuestion() { //得到问题函数,在这里调用递归函数quesGrow()。 str = ""; sum=0; num_i = num;//用前都清零 quesGrow(); } private static void quesGrow() { char fu[]={‘+‘,‘-‘,‘*‘,‘/‘}; // if( num_i > 1 ) { int j = num_i;//记录这是第几层调用。 num_i--; quesGrow();//递归 int w=1+(int)(Math.random()*numberRange);//随机生成一个数 int t=1+(int)(Math.random()*100);//向左生成,还是向右生成,类似于树。 int f=1+(int)(Math.random()*100);//运算符控制 if(t>50)//新数往右加 { if(f>50) { sum=jisuan(sum,fu,w,t); str = str + fu[(int)(Math.random()*4)] + String.valueOf( w ); } else { sum=jisuan(sum,fu,w,t); str = str + fu[(int)(Math.random()*4)] + String.valueOf( w ); } } else//否则 新数往左加 { if(f>50) { sum=jisuan(sum,fu,w,t); str = String.valueOf( w ) + fu[(int)(Math.random()*4)] + str; } else { if( j < 3 ) {//3——摸索出的数,不用给自己套上括号。实际上就是j=2 sum=jisuan(sum,fu,w,t); str = String.valueOf( w ) + fu[(int)(Math.random()*4)] + str; } else { sum=jisuan(sum,fu,w,t); str = String.valueOf( w ) + fu[(int)(Math.random()*4)] + "(" +str+ ")"; } } } } else if( num_i == 1 ) { //最后一层,也是输出的第一层 int w=1+(int)(Math.random()*numberRange); str = str + String.valueOf( w ); } } }
四则运算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。