当前位置: 首页 > article >正文

约瑟夫问题(信息学奥赛一本通-2037)

【题目描述】

N个人围成一圈,从第一个人开始报数,数到M的人出圈;再由下一个人开始报数,数到M
的人出圈;…输出依次出圈的人的编号。

【输入】

输入N和M。

【输出】

输出一行,依次出圈的人的编号。

【输入样例】

8 5

【输出样例】

5 2 8 7 1 4 6 3

【提示】

【数据范围】

对于所有数据,2≤N,M≤1000。

【题解代码】

#include<iostream>
using namespace std;

const int N = 5e3 + 10;
int nums[N];
int num = 0;

int main()
{
	int n, m;
	cin >> n >> m;
	
	int peo = n;  //表示没出圈的人数
	for (int i = 1; i <= n; i++)  //下表为1表示没出圈
	{
		nums[i] = 1;
	}
	
	while (peo > 0)
	{
		for (int i = 1; i <= n; i++)
		{
			if (nums[i] == 1)  //当前这个人没出圈
			{
				if (peo == 1)  //只剩1个人了
				{
					cout << i;
					return 0;
				}
				num++;  //报数
				if (num == m)  //报到m的人出圈
				{
					nums[i] = 0;  //该人出圈
					cout << i << ' ';  //将该人的编号输出
					num = 0;  //重新计数
					peo--;  //没出圈的人减少1个
				}
			}
		}
	}

	return 0;
}

http://www.kler.cn/a/523186.html

相关文章:

  • Android NDK
  • matlab提取滚动轴承故障特征
  • 多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新——从DeepSeek看下一代语言模型的高效之路
  • WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用
  • DeepSeek助力学术文献搜索!
  • 智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力
  • 具身智能体俯视全局的导航策略!TopV-Nav: 解锁多模态语言模型在零样本目标导航中的顶视空间推理潜力
  • 从源码深入理解One-API框架:适配器模式实现LLM接口对接
  • python Flask-Redis 连接远程redis
  • GWO优化决策树分类预测matlab
  • 硬脂酸单甘油酯(GMS)行业分析
  • LeetCode:509.斐波那契数
  • Linux - 进程间通信(2)
  • python flask 使用 redis写一个例子
  • STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120
  • C语言数据类型及取值范围
  • 构建一个有智能体参与的去中心化RWA零售生态系统商业模型
  • go理论知识记录(入门2)
  • 一文大白话讲清楚webpack进阶——4——webpack原理
  • 云计算技术深度解析与代码使用案例
  • Vue.js组件开发-实现下载时暂停恢复下载
  • 团体程序设计天梯赛-练习集——L1-024 后天
  • 自动化运维在云环境中的完整实践指南
  • LeetCode 16. 排列序列
  • 安卓入门四十四 其他动画
  • 每日 Java 面试题分享【第 15 天】