永发信息网

java定义数组并添加3个随机数 要求:随机数的值固定为2的0-8次方的结果如(1、2、4……) 值不得重复

答案:3  悬赏:20  手机版
解决时间 2021-03-17 07:46
  • 提问者网友:未信
  • 2021-03-16 18:09
java定义数组并添加3个随机数 要求:随机数的值固定为2的0-8次方的结果如(1、2、4……) 值不得重复
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-03-16 18:55
import java.util.Random;

public class Test {
public static void main(String[] args) {
int[] intValue = new int[3];
int a1, a2, a3;
Random rnd = new Random();
while (true) {
a1 = rnd.nextInt(8);
a2 = rnd.nextInt(8);
a3 = rnd.nextInt(8);
if (a1 != a2 && a1 != a3 && a2 != a3) {
break;
}
}
System.out.println(a1 + " " + a2 + " " + a3);
if (a1 == 0) {
intValue[0] = 1;
} else {
intValue[0] = 1 << a1;
}
if (a2 == 0) {
intValue[1] = 1;
} else {
intValue[1] = 1 << a2;
}
if (a3 == 0) {
intValue[2] = 1;
} else {
intValue[2] = 1 << a3;
}
for (int s : intValue) {
System.out.println(s + "");
}
}
}

测试过了,没啥问题,虽然办法比较笨
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-03-16 21:11
easy .
Random() 产生一个int类型的随机数,然后 MOD 8,把值去做2的乘方,然后去数组中遍历是不是存在了,不存在,插入数组中 。
over 。

Good Luck !
  • 2楼网友:十鸦
  • 2021-03-16 20:11
public static void main(String[] args) {
Random r = new Random();
int[] arr = new int[3];
boolean f=false;
for(int i=0;i<3;i++){
arr[i]=(int) Math.pow(2, r.nextInt(8));
if(i>0){
for(int j=0;j if(arr[i]==arr[j]){
f=true;
}}
if(f){
i--;
f=false;
continue;
}
}

System.out.println(arr[i]);
}
}追问

结果是这样的。。。

追答

我刚把程序改了,你在重新试一下,我亲测的,没问题,适合任意长度的数组

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯