开灯问题
2016-03-31 10:44
204 查看
有n盏灯,编号为1~n.第一个人把所有的灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3 的倍数的开关(开着的灯关掉,关着的灯被打开),以此类推,一共有k个人,问最后有哪些灯开着?
代码如下:
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){int n, k, vec[1010] = { 0 },first=1;scanf("%d%d", &n, &k);for (int i = 1; i <= k; i++){for (int j = 1; j <= n; j++){if (j%i == 0)vec[j] = !vec[j];}}for (int i = 1; i <= n; i++){if (vec[i]){if (first == 1){first = 0;}else{printf(" ");}printf("%d", i);}}system("pause");}
相关文章推荐
- 开灯问题
- ACM基本输入模式,以开灯问题为例
- NYOJ 77 开灯问题
- 杭电 2053 Switch Game
- 开灯问题
- 数学回味系列之4 - 开灯关灯问题
- 算法-经点问题(鸡兔同笼,麦克劳林求pi,开灯问题)
- 开灯问题
- 开灯问题
- 开灯问题
- [算法设计与分析]3.3.1算术运算的妙用(开灯问题+间隔数)
- 开灯问题
- char*,const char*和string的相互转换(转载)
- ios开发的编码规范
- 从GitHub上下载单个文件(夹)
- Android笔记:解决 Your project contains error(s),please fix them before running your application问题
- matlab程序编程
- 【LeetCode】31. Next Permutation解法
- Go语言学习九:Map(集合)、递归函数、类型转换
- 使用magent搭建memcached集群