我正在尝试解决项目 euler 的问题 5,但我一直得到的答案是错误的:
#include <stdio.h>
main()
{
int num;
int x = 0;
for (num = 20; x == 0; num++)
{
if ((num%1) == 0 && (num%2) == 0 && (num%3) == 0 && (num%4) == 0 && (num%5) == 0 && (num%6) == 0 && (num%7) == 0 && (num%8) == 0 && (num%9) == 0 && (num%10) == 0 && (num%11) == 0 && (num%12) == 0 && (num%13) == 0 && (num%14) == 0 && (num%15) == 0 && (num%16) == 0 && (num%17) == 0 && (num%18) == 0 && (num%19) == 0 && (num%20) == 0)
x = 1;
}
printf("%d %d", num, x);
}
我的程序不断打印出来232792561
(我知道我正在打印 x,这只是为了排除故障)。
我得到的逐字输出是:232792561 1
.
我做了一些研究,发现问题的正确答案是232792560
. 我现在开始相信问题出在 for 循环中。
循环首先做什么,迭代(num++
)还是测试(x == 0
)?