您好我正在努力编写一个可以创建一个包含整数的数组的函数,这与我简单的数学问题相同。
我的问题不是在数组中添加整数,而是找到可能导致数学问题的正确整数。
例如我有一个简单的数学问题,如: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
答案 0 :(得分:2)
我认为这里有一些选择:生成总和为20的随机数。
这是一个可能的解决方案:
例如,创建一个长度为4的数组。
为数组的前3个索引中的每个索引生成1到6之间的随机数。
此时你将拥有一个形式的数组:{4,5,2,_}(我们的第四个元素尚未被选中)。
求和前3个元素:4 + 5 + 2 = 11.通过计算20确定第4个元素 - current_total(11)= 9.
设置myArray[3] = 9;
有几点需要注意:
您可能需要修改可能的随机数范围(1-6)。考虑如果我们生成的数组结果为{2,1,2,_},那么会发生什么......那么没有数字可以确保元素总和为20。
另一种选择是使用arrayList而不是数组。这样做的好处是你可以继续向你的arrayList添加元素,直到你点击20(然后你完成)或重复(在这种情况下你删除最新的元素并再次开始添加)。您也不需要(或能够)提前知道arrayList的长度。