约瑟夫问题

n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1开始报数,数到 m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。

备注:1≤m,n≤100

输入格式:

输入两个整数 n,m。

输出格式:

输出一行 n个整数,按顺序输出每个出圈人的编号。

输入样例:

在这里给出一组输入。例如:

10 3

输出样例:

在这里给出相应的输出。例如:

3 6 9 2 7 1 8 5 10 4

cpp 复制代码
#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    vector<bool> isOut(n, false);
    int count = 0;
    int index = 0;

    for (int i = 0; i < n; ++i) {
        count = 0;
        while (count < m) {
            if (!isOut[index]) {
                count++;
            }
            if (count == m) {
                isOut[index] = true;
                cout << index + 1 << " ";
            }
            index = (index + 1) % n;
        }
    }

    return 0;
}
相关推荐
西红柿煎蛋2 分钟前
C++零之法制和三五法则
c++
西红柿煎蛋3 分钟前
C++/std::shared_ptr
c++
西红柿煎蛋5 分钟前
C++完美转发
c++
重启的码农15 分钟前
KCP源码解析 (5) 底层数据输入处理 (ikcp_input)
c++·网络协议
galaxy_strive18 分钟前
qt c++借助开源的.pro工程文件解读.pro文件中的各项配置的含义
c++·qt
吃着火锅x唱着歌1 小时前
LeetCode 1616.分割两个字符串得到回文串
算法·leetcode·职场和发展
Monkey-旭1 小时前
Android JNI 语法全解析:从基础到实战
android·java·c++·c·jni·native
小徐不徐说1 小时前
RTSP协议详解与C++实现实例
开发语言·c++·qt·通信·rtsp
孟大本事要学习1 小时前
算法第28天|动态规划:基础理论、斐波那契数、爬楼梯、使用最小花费爬楼梯
算法·动态规划
LastWhisperw1 小时前
音频算法基础(语音识别 / 降噪 / 分离)
算法·音视频·语音识别