C 无提示搜索号码
我的算法的主要问题是什么,我需要找到最小的正数,它从1除以20,没有除法器C 无提示搜索号码,c,C,我的算法的主要问题是什么,我需要找到最小的正数,它从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)
#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);
}
#包括
#包括
int main(int argc,char*argv[])
{
int num,j=2;
int saveNum=20;
布尔标志=假;
while(!flag)
{
num=saveNum;
while(num%j==0&&j20)
flag=true;
其他的
{
saveNum++;
j=1;
}
}
printf(“完成”);
printf(“%d”,saveNum);
}
是否缺少查看中间结果的printf
?这可能会帮助你了解内部的情况
但我真的不明白你想解决什么。是否希望结果:2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20
因为我认为这就是你目前正在计算的。然而,在到达之前您将溢出,迭代到该点将花费您一段时间
相反,如果您试图找到可被小于或等于20的每个数字整除的最小数字,那么您可能需要重新查看更新的
num/=j
您的算法没有任何意义。试试看,我不知道你想解决什么问题。您是否正在尝试获得2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20的解决方案?在到达之前,您将溢出32位。@Cracknuts因为有一个溢出,您将有更大的机会获得有意义的结果。