我正在这段代码中,但是我需要解释为什么
int n = 6;
int count = 0;
double end = Math.Sqrt(n);
for (int i = 1; i < end; i++)
{
if (n % i == 0)
count += 2;
}
Console.WriteLine(end * end + " - " + n);
Console.WriteLine(end * end == n);
if (end * end == 6)
Console.WriteLine("why");
在第二个false
中返回Console.Writeline
,但是如果n=9
返回true
答案 0 :(得分:0)
end
是一个双精度值,并且等于6的平方根。即使end * end
应该是6,您仍需将double
和int
与=
标志是一个很大的禁忌。
在this答案中,您可以看到这样做的正确方法。