我工作的問題之一,我原來的計劃看起來像這樣歐拉計劃Q1計劃意想不到的結果
int multiplesof=1000,count=0, multiple1 = 3, multiple2 = 5,val1,val2,sum=0;
while (count < multiplesof)
{
if (count % multiple1 == 0)
sum = sum += count;
if (count % multiple2 == 0)
sum = sum += count;
count++;
}
Console.Out.WriteLine(sum + " is the sum of all multiples");
Console.In.ReadLine();
它給我的266333.解決這被證明是錯誤的,難倒我看着谷歌。我已經通過以下循環獲得了正確的值233168。但對我來說,他們看起來像是做了完全一樣的事情。任何人都可以請解釋他們爲什麼提出不同的答案?
while (count < multiplesof)
{
if (count % multiple1 == 0 || count % multiple2 == 0)
sum = sum += count;
count++;
}
你的下面的代碼是正確的。試試... –
也不需要'sum = sum + = count;'。 '+ ='已經意味着添加和分配。只需使用'sum + = count;' – Rotem
也不需要太多的代碼:'Enumerable.Range(1,1000 - 1).Where(x =>(x%3)== 0 ||(x %5)== 0).Sum()' –