[英]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.