面向小白,没学过算法,先生成随机数,然后再查询相同的,重新赋值:
package com.atguigu.contact;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
int[] a = new int[6];
//先生成随机数
for(int i=0; i<a.length; i++) {
a[i] = (int)(Math.random()*30);
}
//将随机数中重复的重新赋值
//采用类似于搭线敲的方法
//先相邻比,再间隔一个,间隔两个...
for(int j=1; j<(a.length-1); j++) {
for(int i=0; i<(a.length-j); i++) {
if(a[i]==a[i+j]) {
a[i] = (int)(Math.random()*30);
i--;//此处可优化一下,对i内循环只比较这两个数,而不用全比较一遍
}
}
}
//打印
for(int i=0; i<a.length; i++) {
System.out.println(a[i]);
}
}
}
以后学了算法再回来看看有没有更优解hhhh