- for (i = 0; i < sqrt(NUMBER) + 1; i++)
for (i = 0; i <= sqrt(NUMBER); i++)
这个问题就是关于浮点型和整型的比较,如果 NUMBER 恰巧是某个数的平方,比如说 NUMBER = 100, 那么这两个for循环的限制条件是一样的;如果 NUMBER 不是某个数的平方,比如说 NUMBER = 500000,那么这两个for循环中的循环次数就不一样了,第一个循环:i = 708,第二个循环:i = 707。按照我的理解,sqrt(500000)系统自动转换成整型707,那么 i < 708(第一个for循环)和 i <= 707(第二个for循环)效果应该一样的啊,但是我的想法是错误的,按照计算机的设计原理,对于不是平方数的整型开根号后,