有趣的小算法 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;
}

  

posted @ 2021-03-10 20:20  serviceOBJ  阅读(41)  评论(0)    收藏  举报