题目要求:编译一个能出四则运算题目的代码,具体要求为:1、所出题目不能重复2、可以输入任意题目数量和打印方式3、要求乘法题目计算结果为两位数,除法题目计算结果为整数,减法题目计算结果为正数。
解题关键点及思路:这道题目的关键点在于所出题目不能出现重复,所以在解题中用到了数组,通过对每一次出题后存储数据的判断,来决定是否继续执行下面的循环语句,最终实现所出的题目不重复。
代码:
1 package SIZEYUNSUAN; 2 import java.util.Random; 3 import java.util.Scanner; 4 public class Num { 5 static Scanner sc=new Scanner(System.in); 6 public static void main(String[] args) { 7 boolean m4; 8 int k=0; 9 Random a=new Random(); 10 System.out.println("请输入出题数目:"); 11 int n1=sc.nextInt(); 12 System.out.println("请输入打印方式:"); 13 int n2=sc.nextInt(); 14 int m1[]=new int[100000]; 15 int m2[]=new int[100000]; 16 int m3[]=new int[100000]; 17 for(int i=0;i<n1;) { 18 m4=false; 19 int c1=a.nextInt(100); 20 int c2=a.nextInt(100); 21 int c3=a.nextInt(4); 22 for(int j=0;j<k;j++) { 23 if(c1==m1[j]&&c2==m2[j]&&c3==m3[j]) { 24 m4=true; 25 break; 26 } 27 } 28 if(m4) 29 continue; 30 if(c3==0) { 31 System.out.print((i+1)+"."+c1+"+"+c2+"= "); 32 i++; 33 } 34 if(c3==1&&c1>c2) { 35 System.out.print((i+1)+"."+c1+"-"+c2+"= "); 36 i++; 37 } 38 if(c3==1&&c1<=c2){ 39 System.out.print((i+1)+"."+c2+"-"+c1+"= "); 40 i++; 41 } 42 43 if(c3==2) { 44 if(c1*c2<100) { 45 System.out.print((i+1)+"."+c1+"*"+c2+"= "); 46 i++; 47 } 48 else 49 continue; 50 } 51 if(c3==3) { 52 if(((c2!=0)&&(c1%c2)==0)) { 53 System.out.print((i+1)+"."+c1+"/"+c2+"= "); 54 i++; 55 } 56 else 57 continue; 58 } 59 m1[k]=c1; 60 m2[k]=c2; 61 m3[k]=c3; 62 k=k+1; 63 if(i%n2==0) { 64 System.out.println(""); 65 } 66 } 67 } 68 }