我正在尝试一个简单的练习,在屏幕上显示1-1000之间的3或5倍数的所有数字。众所周知,找到这个的方法是使用模数运算符(%),如果模数除法返回0,则数字是3或5的倍数,无论你进行比较,都非常简单。
关键在于,由于某些原因,当我比较表达式if (i % 3 == 0 || i % 5 == 0)
时,匹配的第一个数字是363.
当我只与3 if (i % 3 == 0)
进行比较时,第一个匹配的数字是105,最后当我只与5比较if if(i%5 == 0)时结果是预期的,从5开始。 / p>
我想知道这里发生了什么,或者只是因为我睡着了而无法在夜晚的这个时间看到的东西。
static void Main(string[] args)
{
long total = 0;
for (int i = 3; i <= 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
total += i;
Console.WriteLine(i.ToString());
}
}
Console.Read();
}
答案 0 :(得分:4)
实际上,它始终显示正确的结果,但由于您的控制台大小,您无法看到它们。
尝试:
for (int i = 3; i <= 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
Console.WriteLine(i);
}
if (i % 100 == 0) Console.Read();
}
按Enter键查看下一个100
号码。
答案 1 :(得分:2)
尝试将输出重定向到文件并查看它。使用Program.exe > Output.txt
重定向,然后在记事本中将其打开。