题目要求:编译一个能出四则运算题目的代码,具体要求为: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 }