老澳门6合开奖结果_品牌价值-新手完整的解决方案

攻略 admin 2025-04-06 17:20 5 0

【题目描述】

有n盏灯,编号为1到n。第1个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着? 对于所有数据,满足1<=k<=n<=1000 【输入描述】 输入包括两个整数,中间用空格隔开,分别代表题目中的n和k 【输出描述】 输出一行,包括若干整数,最后一个人操作完成后,仍然开着的灯的编号管家婆一票一码100正确第6版,按从小到大的顺序输出,每个整数后面用一个空格隔开。 【样例输入】 6 3 【样例输出】 1 5 红姐论坛资料大全086期 6


#include <iostream>
#include <vector>

int main() {
    int n, k;
    std::cin >> n >> k;

    std::vector<bool> lights(n + 1, false); // 初始化所有灯为关闭状态

    for (int person = 1; person <= k; ++person) {
        for (int i = 1; i <= n; ++i) {
            if (i % person == 0) {
                lights[i] = !lights[i]; // 反转灯的状态
            }
        }
    }

    std::cout << "最后开着的灯的编号:";
    for (int i = 1; i <= n; ++i) {
        if (lights[i]) {
            std::cout << i << " ";
        }
    }
    
    std::cout << std::endl;

    return 0;
}

这个程序首先创建了一个布尔型向量 ,表示每盏灯的状态,初始时都是关闭状态新澳门彩开奖历史结果查询()。然后,程序依次模拟每个人的操作,根据题目描述,如果某盏灯被操作奇数次,则最终开着;如果被操作偶数次,则最终关闭。

最后,程序输出最终开着的灯的编号,按从小到大的顺序输出。