关闭

nyoj77开灯问题

330人阅读 评论(0) 收藏 举报
分类:

开灯问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述

有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000

输入
输入一组数据:n和k
输出
输出开着的灯编号
样例输入
7 3
样例输出
1 5 6 7
来源
经典算法
上传者
首席执行官

 


01.#include<stdio.h>
02.#include<string.h>
03.#define   MAXN    1000+10
04.int   a[MAXN];
05.int   main()
06.{
07.int   i,j,n,k,first=1;
08.memset(a,0,sizeof(a));
09.scanf("%d%d",&n,&k);
10.for(i=1;i<=k;i++)
11.for(j=1;j<=n;j++)
12.if(j%i==0)
13.a[j]=!a[j];
14.for(i=1;i<=n;i++)
15.if(a[i])
16.printf("%d ",i);
17.printf("\n");
18.return   0;
19.}




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20950次
    • 积分:678
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:7篇
    • 译文:0篇
    • 评论:2条
    文章分类