Bootstrap

n人关灯问题(c++*)

//关灯问题
/n盏灯从1到n编号,n个人从一到n编号第一个人将灯全部关闭,
第二个将凡是2的倍数的灯打开,第三个人将3和3的倍数的灯做反处
理以后的每个人都将操作和自己的倍数相同的号码的灯 键盘输入人数第n个人结束输出灯的状态
/

#include <iostream>

using namespace std;

int main()
{
    int n,k;
    int a[100],light=0;
    int t;//操作次数
    cin>>n;//n人数 
    cin>>k;//k灯的数量 
    for(int i=1;i<=n;i++)
    {
        t=0;  //初始化次数为0 
        for(int j=1;j<=k;j++)
        {
            if(i%j==0)     //人是灯 的倍数 
                t++;        //操作次数加1 
        }
        if(t%2==1)          //操作次数是奇数的灯是亮的 
        {
            a[light]=i;      //把亮的 灯放进数组里 
            light++;
        }
    }
   for(int z=0;z<light;z++)
        cout<<a[z];
    return 0;
}

运行结果
在这里插入图片描述

;