您的位置:首页 > 其它

开灯问题

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");}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  开灯问题