簡體   English   中英

如何創建等於某個值的整數數組?

[英]How to create an array of integers that equal a certain value?

您好,我在嘗試編寫一個可以創建一個保存整數的數組的函數時遇到了困難,這等於我的簡單數學問題。

我的問題不是在數組中添加整數,而是找到了可能會導致數學問題的正確整數。

例如我有一個簡單的數學問題,例如:10 + 10 =? 我們知道等於20

所以我希望我的數組最多容納十個整數,將它們加在一起等於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

我認為這里有一些選擇:生成總計為20的隨機數。

這是一種可能的解決方案:

  1. 例如,創建一個長度為4的數組。

  2. 為數組的前3個索引中的每個索引生成1到6之間的隨機數。

    此時,您將具有以下形式的數組:{4,5,2,_}(此處尚未選擇第4個元素)。

  3. 將前三個元素求和:4 + 5 + 2 =11。通過計算20-current_total(11)= 9來確定第四個元素。

  4. 設置myArray[3] = 9;

注意事項:

  • 您可能需要修改我提供的可能的隨機數范圍(1-6)。 考慮一下如果我們生成的數組結果為{2,1,2,_}會發生什么……那么沒有數字可以確保元素的總和為20。

  • 另一種選擇是使用arrayList而不是數組。 這樣做的好處是,您可以繼續將元素添加到arrayList中,直到達到20(然后完成)或結束(在這種情況下,您刪除最新的元素並再次開始添加)。 您也不需要(或無法)提前知道arrayList的長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM