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

时间:2014-06-01 23:23:19

标签: java arrays

您好我正在努力编写一个可以创建一个包含整数的数组的函数,这与我简单的数学问题相同。

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

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

所以我希望我的数组最多可以容纳10个整数,当它们加在一起时等于20。

这是我在代码中尝试但未获得我想要的结果。

    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个整数,这等于我的数学问题答案。


** 代码更新感谢我收到的建议我设法修复我的while循环现在它看起来像这样

必须发布这样的原因导致我的代表非常低。遗憾。

    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();
        }
    }

这是我在我的控制台中通过此代码获得的内容

 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

1 个答案:

答案 0 :(得分:2)

我认为这里有一些选择:生成总和为20的随机数。

这是一个可能的解决方案:

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

  2. 为数组的前3个索引中的每个索引生成1到6之间的随机数。

    此时你将拥有一个形式的数组:{4,5,2,_}(我们的第四个元素尚未被选中)。

  3. 求和前3个元素:4 + 5 + 2 = 11.通过计算20确定第4个元素 - current_total(11)= 9.

  4. 设置myArray[3] = 9;

  5. 有几点需要注意:

    • 您可能需要修改可能的随机数范围(1-6)。考虑如果我们生成的数组结果为{2,1,2,_},那么会发生什么......那么没有数字可以确保元素总和为20。

    • 另一种选择是使用arrayList而不是数组。这样做的好处是你可以继续向你的arrayList添加元素,直到你点击20(然后你完成)或重复(在这种情况下你删除最新的元素并再次开始添加)。您也不需要(或能够)提前知道arrayList的长度。