zoukankan      html  css  js  c++  java
  • 开灯问题

    //有n盏灯,编号为1 ~ n ,第一个人把所有的等都打开,第二个人按下所有编号为2的倍数(这些灯将关掉),第三个人按下所有编号为3的倍数的开关(
    //其中关掉的灯将打开,开着的灯将关掉),以此类推,一共有k个人,问最后哪些灯开着?
    //输入:n和k,输出开着的灯的编号。k <= n <= 1000.
    //样例输入:7 3
    //样例输出:1 5 6 7
    ////////////////////////////////////////////////////////////////////////////////////
    #include <stdio.h>
    #include <string.h>
    #define MAXN 1000
    
    int a[MAXN];
    
    int main(void)
    {
        int i,j,n,k,first = 1;
        memset(a,0,sizeof(a));
        printf("请输入灯的个数和人数:\n");
        scanf("%d%d",&n,&k);
        for(i = 1; i <= k; i++)
        {
            for(j = 1; j <= n; j++)
            {
                if(j%i == 0)
                {
                    a[j] = !a[j];
                }
            }
        }
        for(i = 1; i <= n; i++)
        {
            if(a[i] > 0)
            {
                if(first)
                {
                    first = 0;
                }
                else
                {
                    printf(" ");
                }
                printf("%d  ",i);
            }
        }
        printf("\n");
    
        return 0;
    }
  • 相关阅读:
    Redis基础
    MySQL基础
    MySQL基础
    MySQL基础
    MySQL基础
    Hello 博客园
    Linux | 常用命令
    JVM | 性能调优
    JVM | 垃圾回收
    学习笔记 | 分布式技术
  • 原文地址:https://www.cnblogs.com/tslDream/p/4454472.html
Copyright © 2011-2022 走看看