改进四则运算程序
import java.util.*; public class Yunsuan { //随机数字 public static int suiji_num(){ return new Random().nextInt(100)+1; } //随机运算符 public static String suiji_char(){ if(suiji_num()%4==1){ return "+"; } else if(suiji_num()%4==2){ return "-"; } else if(suiji_num()%4==3){ return "*"; } else { return "/"; } } //随机括号 public static String kh(){ if(suiji_num()%2==1){ return "("; } else{ return ""; } } //求结果,输出String public static String jisuan(int x,int y,String str){ if(str=="/"){ if(x==0){ return "0"; } else if(y/gys(x,y)==1){ return String.valueOf(x/gys(x,y)); } else{ return String.valueOf(x/gys(x,y))+"/"+String.valueOf(y/gys(x,y)); } } else if(str=="+"){ return String.valueOf(x+y); } else if(str=="-"){ return String.valueOf(x-y); } else { return String.valueOf(x*y); } } //随机运算式,并输出结果 public static void suiji(){ int x=suiji_num(); int y=suiji_num(); String str=suiji_char(); System.out.println(x+str+y+"="+"\n"+"正确结果:"+jisuan(x,y,str)); } //求最大公约数 public static int gys(int x,int y){ int n=1; if(x>=y){ for(int i=1;i<=y;i++){ if(y%i==0&&x%i==0){ n=i; } } return n; } else{ for(int i=1;i<=x;i++){ if(y%i==0&&x%i==0){ n=i; } } return n; } } public static void main(String[] args) { // TODO Auto-generated method stub int n; Scanner in=new Scanner(System.in); System.out.println("需要多少道题?"); n=in.nextInt(); for(int i=0;i<n;i++){ suiji(); } } }
主要是随机数的运用,但是关于括号没有做出来。
实验截图: