约瑟夫问题

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;
}
相关推荐
DogDaoDao5 分钟前
C++核心技术深度剖析:从底层原理到工程实践
开发语言·c++·面试·程序员·指针·虚函数
磊 子8 分钟前
C++移动语义和智能指针
java·开发语言·c++
不负岁月无痕12 分钟前
C++继承与多态知识点及其高频面试问题
开发语言·c++·面试
风筝在晴天搁浅19 分钟前
LeetCode CodeTop 82.删除排序链表中的重复元素Ⅱ
算法·leetcode·链表
1892280486121 分钟前
NV114固态MT29F16T08EWLEHD6-MES:E
人工智能·算法·缓存·性能优化
不会就选b25 分钟前
数据结构之链表OJ题(下)
数据结构·链表
Tairitsu_H30 分钟前
[LC优选算法#4] 滑动窗口 | 串联所有单词的⼦串 | 最⼩覆盖⼦串
c++·算法·滑动窗口
devilnumber32 分钟前
Java 二分查找(二分算法)详解 + 实战运用 + 核心坑点
java·开发语言·算法
洛水水34 分钟前
【力扣100题】84.字符串解码
算法·leetcode·职场和发展
小七在进步1 小时前
数据结构:线性表之单链表
c语言·数据结构