计蒜客T1723 约瑟夫问题(C语言实现)

news/2025/3/4 4:23:28/

【题目描述】
传说约瑟夫当年活下来就是靠快速计算这个问题。n个人围成一圈,编号依次为1,2,3…n。从第一个人开始报数,数到m的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。
【输入格式】
两个整数n,m,均在[1, 100]。
【输出格式】
n个用空格分隔的整数,表示出圈人的编号。
样例输入:6 4
样例输出:4 2 1 3 6 5
耐心一些认真一些,其实并不难~
【C语言代码实现】

# include <stdio.h>
int main()
{int n, m;scanf("%d%d", &n, &m); // 输入两个正整数int s = n; // 变量s记录当前在圈内的人数int a[105] = {0}; // 数组a记录这n个人是否在圈内,初始值全为0,表示n个人全部在圈内,出圈后应修改元素为1int k = 0, p = 0; // 变量k记录当前报数是多少,变量p记录当报到最后一个人时,反过来从前面的哪个位置开始报数while (s) { // 当圈内有人时进行循环while (a[p] != 0) { // 找到本次报数从第几个人开始报数++p;}for (int i = p; i < n; ++i) { // 遍历数组aif (!a[i]) { // 如果第i+1个人在圈内,++k; // 报数加1if (k == m) { // 恰好报到mprintf("%d ", i + 1); // 输出第i+1个人的编号a[i] = 1; // 修改对应元素为1--s; // 圈内的人数要相应减1k = 0; // 报数归零,从0开始}}}}return 0;
}

http://www.ppmy.cn/news/1228522.html

相关文章

三层交换机实现不同VLAN间通讯

默认时&#xff0c;同一个VLAN中的主机才能彼此通信&#xff0c;那么交换机上的VLAN用户之间如何通信&#xff1f; 要实现VLAN之间用户的通信&#xff0c;就必须借助路由器或三层交换机来完成。 下面以三层交换机为例子说明&#xff1a; 注意&#xff1a; 1.交换机与三层交换…

【开源】基于Vue.js的高校宿舍调配管理系统

项目编号&#xff1a; S 051 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S051&#xff0c;文末获取源码。} 项目编号&#xff1a;S051&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统…

二-内存模型及所有权和引用、借用

1. 内存模型1 内存模型&#xff0c;heap和stack的区别&#xff0c;GC方面和go的区别 基本同go一样&#xff0c;分为堆内存、栈内存。栈内存函数退出时会自动释放&#xff0c;大小有限&#xff0c;一般是比较“小”的变量存到栈上。 比较“大”的或者大小动态变化的会分配到堆上…

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法(3)

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法&#xff08;3&#xff09; 工程目的IIC时序图IIC 读写操作方法汇总正点原子IIC实验工程整体框图和模块功能简介&#xff0c;如表下图所示&#xff1a; IIC 驱动模块设计时钟规划状态跳转流程单次写操作的波形图如下图所示&…

C#反射机制

通过反射系统&#xff0c;在不使用new关键词&#xff0c;不知道对象类型的情况下&#xff0c;仅仅通过对象的名称创建一个一模一样的实例的过程 类的结构说明都会以System.Reflection.Type进行保存。 Type object Type.GetType(classiy); Activator.CreateInstance(objType); …

C++模拟实现——红黑树封装set和map

一、红黑树迭代器的实现 基本的框架和实现链表的迭代器思路是一样的&#xff0c;都是对指针进行封装处理&#xff0c;然后实现一些基本的运算符重载&#xff0c;最重要的是operator&#xff0c;需要不递归的实现走中序的规则&#xff0c;这里只实现那最核心的几个基本功能&…

程序员告诉你:人工智能是什么?

随着科技的快速发展&#xff0c;人工智能这个词汇已经逐渐融入了我们的日常生活。然而&#xff0c;对于大多数人来说&#xff0c;人工智能仍然是一个相对模糊的概念。 首先&#xff0c;让我们从人工智能的定义开始。人工智能是一种模拟人类智能的技术&#xff0c;它涵盖了多个领…

C++二分查找算法:找到 Alice 和 Bob 可以相遇的建筑

本文涉及的基础知识点 二分查找算法合集 离线查询 题目 给你一个下标从 0 开始的正整数数组 heights &#xff0c;其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i &#xff0c;且存在 i < j 的建筑 j 满足 heights[i] < heights[j] &#xff0c;那么这个…