首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建等于某一值的整数数组?

如何创建等于某一值的整数数组?
EN

Stack Overflow用户
提问于 2014-06-01 23:23:19
回答 1查看 114关注 0票数 1

你好,我很难写一个函数,这个函数可以创建一个包含整数的数组,这相当于我的简单数学问题。

我的问题不是将整数添加到数组中,而是找到可能导致数学问题的正确整数。

例如,我有一个简单的数学题,比如: 10 + 10 =?我们知道它等于20

所以我想要我的数组最多容纳十个整数,当加起来等于20。

这就是我一直在尝试的代码,但没有得到我想要的结果。

代码语言:javascript
复制
    while (totalCount != answer
            && count < setCount) {

        randomNumber = rand.nextInt((int) answer / 2) + 1;

        if(count < setCount) {
            sumOfBalloons.add(randomNumber);
            totalCount += randomNumber;
            count++;
        }

        if(totalCount > answer) {
            count = 0;
            totalCount = 0;
            sumOfBalloons.clear();
        }
    }

我试图找出与数学问题答案相加的随机数,这样我就可以在气球上画出它们。问题是,在我的while循环中,我永远不可能得到与答案相等的十个数字。

有人知道做这种事的方法吗?

需要数组来保存3-10个整数,相当于我的数学问题答案。

**代码更新,感谢我收到的建议,我设法修复了自己的this循环,现在看起来如下所示

我不得不这样发帖,因为我的代表很低。抱歉的。

代码语言:javascript
复制
    while (totalCount != answer) {

        randomNumber = rand.nextInt((int) answer / 2) + 1;

        if(totalCount + randomNumber > answer) {
            randomNumber = rand.nextInt((int) answer - totalCount) + 1;
        }

        if(count + 1 == setCount) {
            randomNumber = answer - totalCount;
        }

        if(count < setCount) {
            sumOfBalloons.add(randomNumber);
            totalCount += randomNumber;
            count++;
        }

        if(totalCount > answer
                || totalCount == answer
                && count < setCount
                || totalCount != answer
                && count == setCount) {
            count = 0;
            totalCount = 0;
            sumOfBalloons.clear();
        }
    }

这就是我从我的控制台中得到的代码

代码语言:javascript
复制
 Total count = 10
 Total totalCount = 20
 sumOfBalloons 0 = 2
 sumOfBalloons 1 = 3
 sumOfBalloons 2 = 3
 sumOfBalloons 3 = 2
 sumOfBalloons 4 = 1
 sumOfBalloons 5 = 4
 sumOfBalloons 6 = 2
 sumOfBalloons 7 = 1
 sumOfBalloons 8 = 1
 sumOfBalloons 9 = 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-01 23:45:05

我认为这里有几个选项:生成等于20的随机数。

这里有一个可能的解决方案:

  1. 例如,创建一个长度为4的数组。

  1. 为数组的前3个索引中的每个索引生成介于1和6之间的随机数。 此时,您将得到一个表单数组:{ 4,5,2,}(其中我们的第4个元素尚未被选择)。

  1. 我们的前3个元素之和:4+5+2= 11。通过计算20 - current_total (11) = 9确定第4元素。

  1. 设置myArray[3] = 9;

有几件事要注意:

  • 您可能需要修改我给出的可能的随机数范围( 1-6 )。考虑一下,如果我们生成的数组是{ 2,1,2,}...then,那么没有数字可以确保元素之和为20。

  • 另一种选择是使用arrayList而不是数组。这样做的好处是,您可以继续向arrayList添加元素,直到达到20 (然后完成)或遍历(在这种情况下,您删除了最近的元素并开始再次添加)。您也不需要(或能够)预先知道arrayList的长度。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23985498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档