题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
输入格式
初始人数n
输出格式
最后一人的初始编号
样例输入
3
样例输出
2
代码解析
1. 引入头文件
代码开始时,引入了stdio.h
头文件,这是C语言标准输入输出库,用于处理输入输出函数,如scanf
和printf
。
#include <stdio.h>
2. 定义josephus
函数
定义了一个名为josephus
的函数,该函数接收一个整型参数n
,表示参与游戏的人数。函数的返回类型为int
,表示最后剩下的人的编号。
int josephus(int n)
3. 初始化数组
在josephus
函数内部,定义了一个整型数组arr
,数组大小为1000,用于存储游戏过程中每个人的编号。数组下标从0开始,因此数组有效索引范围是0到999。数组的每个元素初始时被赋值为其下标加1,代表每个人的编号。
int arr[1000];
4. 初始化计数器和下标
定义了三个整型变量&#x