开灯问题
来源:互联网 发布:怎么在淘宝上开个网店 编辑:程序博客网 时间:2024/05/21 18:04
有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯被打开, 开着灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?
输入:n和k,输出开着的灯编号。k≤n≤1000。
样例输入:
7 3
样例输出:
1 5 6 7
#include <stdio.h>#include <string.h> //memset(),sizeof()函数所在 const int maxn=1005;int light[maxn]; //将数组定义在main函数外,可以开得大一点 int main(){ int n,k; //n为灯数,k为人数 scanf("%d%d",&n,&k); memset(light,0,sizeof(light)); for(int i=1;i<=k;i++) for(int j=i;j<=n;j=j+i) light[j]=!light[j]; for(int i=1;i<=n;i++){ if(light[i]==1) printf("%d ",i); } return 0;}
改进:
1.输出时避免输出多余空格,即最后一个数后无空格:
int first=1; //标记变量for(int i=1;i<=n;i++){ if(light[i]){ if(first) first=0; //第一个数前无空格 else printf(" "); } printf("%d ",i);}
0 0
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- 开灯问题
- MyEclipse 快捷键
- [BZOJ3997][TJOI2016]组合数学 平面图
- PHP底层的运行机制与原理
- 散列入门(3)----pat-b1033. 旧键盘打字(20)
- 怎样处理服务器负载量过大
- 开灯问题
- Grid Growing Clustering Algorithm
- XCode移除本地仓库
- C语言程序设计入门(四)
- 编程思想之消息机制
- C++学习第三课
- 仿QQ侧滑菜单
- 两学一做
- [Leetcode 79] Word Search