欧拉1号项目,无缘无故获得更高的结果

时间:2019-05-15 22:09:05

标签: c#

我在Project Euler网站上遇到的第一个编码挑战遇到了问题。这是您要做的:

  

“如果我们列出所有低于10的自然数,这些自然数是3的倍数   或5,我们得到3、5、6和9。这些倍数的总和为23。

     

找到1000以下的3或5的所有倍数之和。”

这是我的代码(c#):

total = 0;

for (int i = 0; i <= (999 - (999 % 3)) / 3; i++)
{
    total += 3 * i;
}

for (int i = 0; i <= (999 - (999 % 5)) / 5; i++)
{
    total += 5 * i;
}

当我归还总额时,它会给我'266333',而应该是'233168'。我一直盯着它看了一个小时,但我不知道我的代码出了什么问题。抱歉,如果这是一个愚蠢的问题,但是Google不能帮助我,我真的很傻。

1 个答案:

答案 0 :(得分:-4)

您可以单次for循环执行以下操作:

int total = 0;

            for (int i = 1; i < 1000; i++)
            {
                if (i % 3 == 0 || i % 5 == 0)
                {
                    total += i;
                }
            }