题目描述:
有 nn人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来的第几号
输入描述:
初始人数 n(1≤n≤100)。
输出描述:
最后一人的初始编号。
输出时每行末尾的多余空格,不影响答案正确性
输入:
3
输出:
2
题意:
字面意思
题解:
约瑟夫环
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,m;
while(scanf("%d",&n)!=EOF){
int ans = 0;
for(int i = 1;i <= n;i ++){
ans = (ans + 3) % i;
}
printf("%d\n",ans + 1);
}
return 0;
}