有趣的小算法 1
一个100大小的int数组,要求随机添加1-100的数到其中,且不能有重复。
思考:在for(0-99)循环中 肯定要产生随机数然后与数组中元素比较,如果产生的随机数在for(0-i)中有相等,则
跳出循环,再产生随机数;如果不等,继续在for(0-i)中比较,直到小循环中是i值还是不等,说明不存在相等的数,则跳出while循环,将该随机数指向大for循环中arr[i]。
完整代码如下
int [] arr = new int[100];
int random;
for(int i=0;i<100;i++){
boolean t = true;
do{
random = (int)(Math.random()*100) +1;
for(int j=0;j<=i;j++){
if(temp==arr[j]){
break;
}else if(j==i){
t=false;
}
}
}while(t);
arr[i]=temp;
}

浙公网安备 33010602011771号