题目背景
约瑟夫是一个无聊的人!!!
题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入输出格式
输入格式:
n m
输出格式:
出圈的编号
输入输出样例
说明
m, n le 100m,n≤100
思路:模拟
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,k,num,pos; int vis[110]; int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ num=0; while(1){ pos++;if(pos>n) pos=1; if(!vis[pos]) num++; if(num==k) vis[pos]=1,cout<<pos<<" "; if(num==k) break; } } }