如题for(.....)
{
A
if(满足条件)
执行B
else
跳过B
}
{
B
}
B不能和A一起循环
还是贴代码吧,一个我发现bug(2^n 3^n 5^n没解决这个不用管了,这代码时间复杂度太高,我知道丑数的正解了)的丑数解决。
#include <stdio.h>
int main()
{
int n,m,i, j, k,l,max,array[100];
l = 0;
scanf_s("%d%d", &n, &m);
for (i = n; i <= m; i++)
{
k = 0;//限制输出NO条件
for (j = 4; j <= i / 2; j++)//j=1不考虑,2,3跳过了
{
if (j == 2 || j == 3 || j == 5)
continue;
if (i%j == 0)
break;
}//问题在此,怎么让for循环后在i%j==0时结束掉后面自if(i%2=0...)至for(i=n...)前的代码?
if (i % 2 == 0 || i % 3 == 0 || i % 5 == 0)
{
array[l] = i;
l++;
k = 1;
}
}
for (i = n; i <= m; i++)
{
if (array[i + 1] > array[i])
max = array[i + 1];//选择最大丑数
}
if (k == 1)
{
printf("%d", max);
}
if (k == 0)
printf("%d %d NO", n, m);
return 0;
}
慕的地6079101
慕斯卡9202087
慕斯卡9202087
kekedeaizhiyu
相关分类