【题目】C语言开灯问题找错描述有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着?输入n和k, 1≤k≤n≤1000 。输出开着的灯编号。
100盏灯开关问题 ——C语言 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭 的,按过开关之后灯会亮。 现在开始按开关。 第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,...100)。第2个同学,隔一个灯按一次(按...
void main(){ int n,b,s; //n总灯数,b开始数的灯号,s间隔 int a[256],i,k,m,p; //a存放灯号,k当前数到位置,m当前数到亮灯计数,p熄灭灯数 scanf("%d%d%d",&n,&b,&s); if ( n>256 ) n=256; //约数最多256盏灯 for ( i=0;i<n;i++ ) a[i]=i; //灯号...
这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又关了。逻辑不对,改成:if(a[j]==0)a[j]=1;else a[j]=0;这样就没问题了。
一个开关灯的c语言问题。。。没有思路~ 一个开关灯的c语言问题。。。没有思路~述 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。 第一个人(1号)将灯全部关闭,第二个人(2号)将
C语言开灯问题找错描述 有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着? 输入 n和k,1≤k≤n≤1000。 输出 开着的灯编号。 样...
100盏灯开关问题——C语言 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。 现在开始按开关。 第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,...100)。 第2...