2019/9/19 课堂测验

        周一下午JAVA课堂小测试,要求算名次,这可一下紧张起来,但最后还可以,总算是写出来了。

   题目要求:小学二年级算法,每个数的范围是0-100,而且差不能出负数,除必须除尽,可以自己定义做的题目数,并且还能定义每行个数,而且题目还不能重复。

 解题思路:需要用随机数的产生Math.random(),范围0-1,再*100。题目个数之间for循环,对于差出负数,如果第一个数小于第二个数,则两个数换一下。除尽是两个数相除,除不尽则继续产生随机数,知道除尽为止。除有个关键点,被除数不能为0,这个还有考虑。重复是个难点,刚开始弄的是每一组新数和上一组比较,最后让老师点出问题,最后定义两个数组来存储之前的数,然后在比较,如果重复,则再随机产生。

   如果看出哪错了,请大佬们留言指出错误,感激不尽

      代码: 

package com.javaclass1;
import java.math.*;
import java.util.Scanner;
public class class2 {
public static void main(String args[]) {
Scanner scanner =new Scanner(System.in);
System.out.print("请输入你要测试的题目个数:");
int max=scanner.nextInt();
System.out.print("每行题目的个数:");
int n=scanner.nextInt();
int temp1[]=new int[10000];
int temp2[]=new int[10000];
for(int i=1;i<=max;i++) {
int num1=(int)(Math.random()*100);
int num2=(int)(Math.random()*100);
temp1[i-1]=num1;
temp2[i-1]=num2;
int num=0;
while(num==0) {
for(int j=0;j<max;j++) {
if(num1==temp1[i]&&num2==temp2[i]) {
num1=(int)(Math.random()*100);
num2=(int)(Math.random()*100);
num=0;
break;
}
else num++;

}
}
int temp=((int)(Math.random()*100))%4;
System.out.print(i+":");
if(temp==0) {
System.out.print(num1+"+"+num2+"= ");
}
if(temp==1) {
if(num1<num2) {
System.out.print(num2);
System.out.print("-");
System.out.print(num1);
System.out.print("= ");
}
else {System.out.print(num1);
System.out.print("-");
System.out.print(num2);
System.out.print("= ");}
}
if(temp==2) {
while(num1*num2>100) {
num1=(int)(Math.random()*100);
num2=(int)(Math.random()*100);
}
System.out.print(num1);
System.out.print("*");
System.out.print(num2);
System.out.print("= ");
}
if(temp==3) {
while(num2==0) {
num2=(int)(Math.random()*100);
}
while(num1%num2!=0) {
num1=(int)(Math.random()*100);
num2=(int)(Math.random()*100);
while(num2==0) {
num2=(int)(Math.random()*100);
}
}

System.out.print(num1);
System.out.print("/");
System.out.print(num2);
System.out.print("= ");
}
if(i%n==0) {
System.out.println();
}
}
}
}

 

运行结果:

 

 

 

posted @ 2019-09-19 16:03  littlemelon  阅读(114)  评论(0编辑  收藏  举报