从 1-15中,随机出来5个数,不能重复的

来源:互联网 发布:淘宝上的汝窑茶具 编辑:程序博客网 时间:2024/06/05 01:57

第一种方法,用零覆盖法

int [] nums={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};for(int i=0;i<5;i++){ int index=(int)(Math.ramdom()*15);
  int num=nums[index];    if(num==0)  {     i--;    continue;  }else   {     System.out.println(num);     nums[index]=0;   }}

int[] nums={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int[] result=new int[5];//i代表准备存在结果result数组中的下标位置for(int i=0;i<result.length;i++){//先随机出nums数组中的下标0-14,int indexOfNums=(int)(Math.random()*15);//然后通过随机出的下标,获取相关位置上的值int num=nums[indexOfNums];//判断获取的值是否为0,如果为0,则代表已经被取出,则这次操作无效(还要停留在这次),还必须重新随机取球if(num==0){//还要停留在这次i--;//和i++中和了,则i没有变化,还停留在这次continue;//continue会做的i++,就会进入下一次,本次循环余下的代码不会完成}//if不成立,自然会做到以下代码//不等于0,就代表是可用的数字System.out.println(num);//把取出的数,存到结果数组对应的下标位置上result[i]=num;//同时取出,把nums中对应位置上的值设置为0nums[indexOfNums]=0;}
第二种方法,随机化数组中的元素,若重复,则重新随机化

//创建数组并声明,new初始化数组int[] nums=new int[5];nums[0]=(int)(Math.random()*15);for(int i=1;i<5;i++){       nums[i]=(int)(Math.random()*15+1);  for(int j=0;j<i;j++)  {      while(nums[i]==nums[j])  {   //如果重复了,就重新取数  i--;  }    }}for(int k=0;k<5;k++)System.out.println(nums[k]);



阅读全文
0 0
原创粉丝点击