为什么c++程序运行没结果?
有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯...
有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推。一共有k个人,问最后有那些灯开着?输入:n和k,输出开着灯的编号。k<=n<=1000。下面代码是算法书上抄下来的,但是Dev c++和visual c++都运行不出结果求大侠解决#include<stdio.h>#include<string.h>#define maxn 1010int a[maxn];int main(){int n,k,first=1;memset(a,false,sizeof(a));scanf("%d %d",&n,&k);for(int i=1;i<=k;i++)for(int j=1;i<=n;j++)if(j % i == 0) a[j]=!a[j];for(int i=1;i<=n;i++)if(a[i]){if(first) first=0; else printf(" ");printf("%d",i);}return 0;}
展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询