题目:一家软件公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道四则运算题目给小学生做。
二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件”
课堂测试2:
(1)题目避免重复;
(2)可定制(数量/打印方式);
设计思路:利用随机函数random()生成随机数,创建数组,把生成的四则算数式子存入数组,然后比较,避免重复。
package jishu;
import java.util.Random;
import java.util.Scanner;
public class Suanshu {
static Scanner scan=new Scanner(System.in);
static int num;
static String[] str=new String[4];
public static void main(String[]args) {
int a[]=new int[1000000];
int b[]=new int[1000000];
int c[]=new int[1000000];
System.out.print("请输入一共输入多少个");
int x;
num=scan.nextInt();
System.out.println("一行个数");
x=scan.nextInt();
str[0]="+";
str[1]="-";
str[2]="*";
str[3]="/";
Random rand=new Random();
int num0=0;
int num1;
int num2,num3;
for(int i=0;i<num;i++) {
int z=0;
do {
num1=rand.nextInt(99)+1;
num2=rand.nextInt(4);
if(num2==1) num3=rand.nextInt(num1);
if(num2==2) {
num3=rand.nextInt(100/num1);
}
else num3=rand.nextInt(98)+1;
if(num0>=1) {
for(int j=0;j<num0;j++) {
if((num1==a[j])&&(num2==b[j])&&(num3==c[j])) {
z=0;
}
else {
a[j]=num1;
b[j]=num2;
c[j]=num3;
z=1;
num0++;
}
if(num0==0) {
a[0]=num1;
b[0]=num2;
c[0]=num3;
num0++;
z=1;
}
}
}
}while(z==1);
System.out.print(i+1);
System.out.print("、");
System.out.print(num1);
System.out.print(str[num2]);
System.out.print(num3);
System.out.print("=");
if((i+1)%x==0)
System.out.println(" ");
else
System.out.print(" ");
}
}
}
运行结果:
请输入一共输入多少个50
一行个数
5
1、51*0= 2、50+81= 3、45*0= 4、15+34= 5、2/78=
6、17*4= 7、88/6= 8、30-18= 9、2*22= 10、73*0=
11、86/25= 12、55*0= 13、91/61= 14、12-40= 15、40*0=
16、2/43= 17、67/75= 18、73-73= 19、6/44= 20、38*1=
21、51*0= 22、81+91= 23、16+55= 24、3+6= 25、57*0=
26、83+58= 27、1*46= 28、51/38= 29、98*0= 30、88+12=
31、82*0= 32、12+2= 33、45-55= 34、14/48= 35、82/7=
36、22-40= 37、37+56= 38、35-27= 39、11-76= 40、28*2=
41、55/72= 42、19-52= 43、83/12= 44、48*1= 45、58+83=
46、16*1= 47、65/4= 48、75+41= 49、75/48= 50、50/59=