zoukankan      html  css  js  c++  java
  • 开灯问题 分类: 算法入门 算法 2014-10-14 14:43 90人阅读 评论(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


    #include<stdio.h>
    #include<string.h>
    
    bool light[10000];
    int main(){
    	int n,k,i,j;
    	scanf("%d %d",&n,&k);
    	for(i=2;i<=k;i++)
    	{
    		for(j=2;j<=n;j++)
    		{
    			if(j%i==0) light[j]= !light[j];
    		}
    	}
    	printf("1");
    	for(i=2;i<=n;i++)
    	{
    		if(light[i] == 0) printf(" %d",i);
    	}
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    字符串String
    冒泡排序、二分查找法
    数组习题
    数组
    附加习题
    编写Java程序,应用for循环打印菱形、三角形
    JAVA的语法基础4
    3.20 每日一题题解
    3.19 每日一题题解
    3.18 每日一题题解
  • 原文地址:https://www.cnblogs.com/learnordie/p/4657004.html
Copyright © 2011-2022 走看看