Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >偶数和奇数的随机数发生器

偶数和奇数的随机数发生器
EN

Stack Overflow用户
提问于 2015-04-12 10:09:02
回答 6查看 9.7K关注 0票数 2

我需要创建一个在0到99之间生成25个随机整数的应用程序,然后在两行分别输出这些整数,一个用于奇数,另一个用于偶数。我需要对偶数使用一个数组,对奇数使用一个数组。到目前为止,这就是我所拥有的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {

    //Odd Numbers
    int[] oddNums = new int[25];

    for (int index = 0; index < oddNums.length; index++) {
        oddNums[index] = (int) (Math.random()*99);
    }

    System.out.print("ODD: ");

    for (int index = 0; index < oddNums.length; index++) {
        System.out.print(oddNums[index] + " ");
    }

    //Even Numbers
    int[] evenNums = new int[25];

    for (int index = 0; index < evenNums.length; index++) {
        evenNums[index] = (int) (Math.random()*99);
    }

    System.out.print("\nEVEN: ");

    for (int index = 0; index < evenNums.length; index++) {
        System.out.print(evenNums[index] + " ");
    }

}

我已经设置了程序来打印25个随机整数,但我不知道如何使程序只在一行上打印偶数,在另一行上只打印奇数(我对java并不熟悉)。

下面是我得到的一个示例输出:

单数: 28 36 54 98 35 1 59 43 96 69 41 66 37 15 30 17 29 56 83 71 4 24 70 38 均数: 34 45 36 26 73 84 60 21 21 28 98 69 32 32 24 72 29 26 88 77 2 23 58 47

这是错误的,因为这两条线上都有偶数和奇数。

这就是输出应该是什么样子:

奇数: 25 97 23 45 63 91 13 47 93 51 29 偶数: 22 94 46 74 18 48 32 84 28 92 56

一条线上只有奇数,另一条线上只有偶数。

有人知道我需要在这里加什么吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-04-12 10:18:30

稍微修改一下你的程序,就会得到想要的结果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {

    //Odd Numbers
    int[] randomNumbers = new int[25];
    int[] evenNumbers = new int[25];
    int[] oddNumbers = new int[25];
    int k = 0, l = 0;
    for (int index = 0; index < randomNumbers.length; index++) {
        randomNumbers[index] = (int) (Math.random() * 99);
    }
    for (int i = 0; i < 25; i++) {
        if (randomNumbers[i] % 2 == 0) {
            evenNumbers[k] = randomNumbers[i];
            k++;
        } else {
            oddNumbers[l] = randomNumbers[i];
            l++;
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2015-04-12 10:23:40

你只需生成25个号码。生成这些ints之后,您可以在它们所属的数组中找到它们。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int num;
int oddIndex = -1;
int evenIndex = -1;
for (index = 0; index < 25 ; index++){
      num = (int) (Math.random()*99);
      if (num % 2 == 1){
         oddIndex++;
         oddNum[oddIndex] = num;             
      }
      else{
         evenIndex++;
         evenNum[evenIndex] = num;
      }
 }

在本例中,您不确定每个数组的大小。因此,我建议您使用ArrayList而不是数组。如果使用ArrayList,则不需要处理oddIndex和evenIndex。

票数 1
EN

Stack Overflow用户

发布于 2015-04-12 10:13:42

你可以用公式n= 2*x均匀地在0,100中产生一个偶数,其中x在0,49中是一致随机的。

你也可以用n= 2*x+1生成一个一致随机奇数,其中x在0,49中是一致随机的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29592767

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文