c语言实现开灯问题 开灯问题: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000。
【题目】C语言开灯问题找错描述有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着?输入n和k, 1≤k≤n≤1000 。输出开着的灯编号。
c语言 开灯问题 vs2019编译通过 1 #include<stdio.h> 2 #include<stdlib.h> 3 //开灯问题 4 //总共有n盏灯,编号为1~n,k个人 5 //第一个人摁下所有灯的开关 6 //第二个人摁下所有编号为2的倍数的开关 7 //第三个人摁下所有编号为3的倍数的开关 8 //... 9 //传入k<n<1000,问最后哪些灯...
开灯问题 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000 输入 输入一组数据:n...
0表示灯在关着,取非!之后表示灯在开着。if(first)first = 0;就是为了满足题意的输出要求,书上写的很清楚,如果是想要单纯学算法,不需要在意那些细节,掌握重要思路及代码就行了;如果要比赛,这个就比较重要,需要谨慎。if(first)就相当于if(first!=0)的意思。还有什么不懂的吗?
看代码比写代码麻烦,写一个你作参考……//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){ char light[101]; int n,k,i,j; while(1){ printf("Input n & k(0<n<100 0<k<=n)...\nn="); if(scanf("%d%d",&n...
void main(void){ int i, j, a[n];for(i = 0; i < n; i++) a[i] = 0;// 初始化为全0 for(i = 1; i <= n; i++)for(j = i ; j <= n; j = j + i)a[j - 1] += 1;//100人对100灯,都操作完毕,下面是显示 for(i = 0; i < n; i++) { if(...
没有初始化变量,第一个for的条件n是随机数 a(j)是什么东西,数组访问用的是[]后面if(a[j]=1)那里要用== 至少能不能实现就不知道了,真没明白你的程序想干嘛,没有输入只有最后一个输出如何控制的,灯就两种状态可以用bool型
C语言初学者代码中的常见错误与问题 问题 开灯问题 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯...
至于first变量,是用来控制输出的,每个被输出的数字前面都会先输出一个空格,但第一个输出的数字前面不需要输出一个多余的空格 另外多说一句,数组初始化的时候,如果仅需要在定义时同时初始化,可以写成int a[MAXN] = {0};,这样可以将数组内所有元素都初始化为0 如有疑问欢迎继续追问,谢谢 ^_^ ...