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

约瑟夫问题(信息学奥赛一本通-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.lryc.cn/news/528242.html

相关文章:

  • WPF5-x名称空间
  • 一个python项目中的文件和目录的作用是什么?scripts,venv,predict的具体含义
  • python学opencv|读取图像(四十八)使用cv2.bitwise_xor()函数实现图像按位异或运算
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-block.py
  • c++多态
  • ResNeSt: Split-Attention Networks 参考论文
  • Blazor-选择循环语句
  • 从AD的原理图自动提取引脚网络的小工具
  • 苍穹外卖使用MyBatis-Plus
  • Baklib引领数字化内容管理转型提升企业运营效率
  • 【PyTorch】4.张量拼接操作
  • MySQL--》深度解析InnoDB引擎的存储与事务机制
  • Visio2021下载与安装教程
  • 实战纪实 | 真实HW漏洞流量告警分析
  • 【AI论文】扩散对抗后训练用于一步视频生成总结
  • 重回C语言之老兵重装上阵(十六)C语言可变参数
  • 深拷贝、浅拷贝、移动语义
  • 双向链表在系统调度、游戏、文本编辑及组态方面的应用
  • 实践网络安全:常见威胁与应对策略详解
  • 关于2024年
  • Hive:Hive Shell技巧
  • Markdown Viewer 浏览器, vscode
  • 快速分析LabVIEW主要特征进行判断
  • 【Super Tilemap Editor使用详解】(十五):从 TMX 文件导入地图(Importing from TMX files)
  • JavaScript系列(45)--响应式编程实现详解
  • Lustre Core 语法 - 布尔表达式
  • python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算
  • C# 添加、替换、提取、或删除Excel中的图片
  • 工作总结:压测篇
  • 11JavaWeb——SpringBootWeb案例02