我知道这可以通过使用
轻松完成if(i%5 == 0 OR i%3 ==0) sum+=i;
但是下面的C#代码有什么问题:
int sum = 0;
for(int i = 0, j = 0; i < 1000; i+=3, j+=5)
{
Console.WriteLine("i = " + i);
Console.WriteLine("j = " + j);
sum += i;
Console.WriteLine("Sum after adding i = " + sum);
if(j < 995 && j % 3 != 0)
{
sum += j;
}
Console.WriteLine("Sum after adding j = " + sum);
}
答案 0 :(得分:5)
声明j < 995
应该是j <= 995
,否则你不会在你的总和中添加995。
答案 1 :(得分:1)
明显的错误是995是5的倍数,不会被添加,而996和999是3的倍数将被添加:循环条件中的1000和if条件中的995应该是相同的数字。
答案 2 :(得分:1)
另外,如果你想将所有这些自然数小于1000的总和加起来,为什么排除995呢?你可以把
j <= 995 && j%3!=0
答案 3 :(得分:0)
这可能只是一个挑剔,但仍然:“全部”和“低于1,000”不是同一组自然数,你可能想要改变一些东西。
答案 4 :(得分:0)
for(int i = 0, j = 0; i < 15; i+=3, j+=5)
将此更改为
for(int i = 0, j = 0; i <= 15; i+=3, j+=5)
使用<=
(大于或等于运算符)
并且有效