我的算法中的主要问题是什么,我需要找到最小的正数除以1到20而没有分频器...
#include <stdio.h>
#include <stdbool.h>
int main(int argc,char* argv[])
{
int num,j=2;
int saveNum=20;
bool flag = false;
while(!flag)
{
num = saveNum;
while(num%j==0 && j<=20)
{
num /= j;
j++;
}
if(j>20)
flag = true;
else
{
saveNum++;
j=1;
}
}
printf("Done");
printf("%d",saveNum);
}
答案 0 :(得分:0)
您是否遗漏了printf
以查看您的中间结果是什么?这可能有助于您了解内部发生的事情。
但我真的不明白你要解决的问题。您想要结果:2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20
?
因为我认为这就是你目前正在计算的东西。但是,在你到达那里之前你会溢出并且迭代到那一点会花费你一段时间。
如果您试图找到可被每个小于或等于20的数字整除的最小数字,那么您可能需要重新访问num /= j
的更新。