簡體   English   中英

嘗試查找1000中3和5的所有倍數的和時,為什么這不起作用?

[英]Why does this not work when trying to find the sum of all multiples of 3 and 5 in 1000?

關於項目Euler的問題,這里有很多問題,涉及尋找1000以下3和5的所有倍數之和,但是我是Java的初學者,所以我嘗試制作自己的程序來嘗試解決這個問題我的代碼的問題是,它不斷給出答案466 466是對這個問題的錯誤答案,所以我想知道自己做錯了什么。

這是我的代碼。

package sumofmultiples;

public class sumofMultiples{
    public static void main(String[] args){
        int number = 1; //<- This is the number that we are checking to be a multiple.
        int totalNumber= 0; //<- Total number of multiples counted so far.
        while (number < 1000){
            if ((number % 3) == 0){
                totalNumber++;
                //The number is a multiple of 3.
            } else if ((number % 5) == 0){
                totalNumber++;
                //The number is a multiple of 5
            }
            number++; //<- Move on to the next number.
        }
        System.out.println(totalNumber); //<- Print results
    }
}

您正在計算倍數。 不是他們的總和。 每當數字是3或5的倍數時,totalNumber ++都會增加,但是不會存儲“ multiple”。

totalNumber++更改為totalNumber += number解決問題。

package sumofmultiples;

public class sumofMultiples{
    public static void main(String[] args){
        int number = 1; //<- the number that we are checking to be multiple.
        int totalNumber= 0; //<- Total number of multiples counted so far.
        while (number < 1000){
            if ((number % 3) == 0 || (number % 5) == 0){ 
                totalNumber += number;
            } 
            number++; //<- Move on to the next number.
        }
        System.out.println(totalNumber); //<- Print results
    }
}

暫無
暫無

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

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