约瑟夫问题

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;
}
相关推荐
rchmin2 分钟前
限流算法:令牌桶与漏桶详解
算法·限流
小北方城市网3 分钟前
第1课:架构设计核心认知|从0建立架构思维(架构系列入门课)
大数据·网络·数据结构·python·架构·数据库架构
leoufung10 分钟前
LeetCode 221:Maximal Square 动态规划详解
算法·leetcode·动态规划
黑符石12 分钟前
【论文研读】Madgwick 姿态滤波算法报告总结
人工智能·算法·机器学习·imu·惯性动捕·madgwick·姿态滤波
源代码•宸14 分钟前
Leetcode—39. 组合总和【中等】
经验分享·算法·leetcode·golang·sort·slices
好易学·数据结构15 分钟前
可视化图解算法77:零钱兑换(兑换零钱)
数据结构·算法·leetcode·动态规划·力扣·牛客网
bkspiderx28 分钟前
C++中的map容器:键值对的有序管理与高效检索
开发语言·c++·stl·map
AlenTech29 分钟前
226. 翻转二叉树 - 力扣(LeetCode)
算法·leetcode·职场和发展
Hard but lovely29 分钟前
Linux: 线程同步-- 基于条件变量 &&生产消费模型
linux·开发语言·c++
Tisfy33 分钟前
LeetCode 1458.两个子序列的最大点积:动态规划
算法·leetcode·动态规划·题解·dp