我在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不能帮助我,我真的很傻。
答案 0 :(得分:-4)
您可以单次for循环执行以下操作:
int total = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
total += i;
}
}