#P2009. 约瑟夫问题.数组标记法.填空题

约瑟夫问题.数组标记法.填空题

题目描述

nn 个人,其编号分别为 11~nn。按顺序围成一个圈,现在给定一个数 mm,从第一个人开始依次报数,报到 mm 的人出圈,然后再从下一个人开始,继续从 11 开始依次报数,报到 mm 的人再出圈,... 如此循环,直到最后一个人出圈为止。

编程输出所有人出圈的顺序。

输入格式

一行两个正整数 nnmm,之间用一个空格隔开,1n<1001 \le n \lt 1001m327671 \le m \le 32767

输出格式

输出 nn 行,每行一个正整数,表示依次出圈的人的编号。

样例

8 5
5
2
8
7
1
4
6
3

程序填空

#include<iostream>
using namespace std;
int f[101],n,m,cnt;
main(){
    cin>>n>>m;

	int nn=n,i=0;
	while( 填空(1)  )
	{
		填空(2);
		if(i==n+1) 填空(3);

		if(f[i]) 填空(4);

		cnt++;

		if(填空(5))
		{
			cout<<填空(6)<<endl; 
			f[i] = 填空(7);
			cnt = 0;
			nn--;
		}
	}

	return 0; 
}

填空(1) {{ input(1) }}

填空(2) {{ input(2) }}

填空(3) {{ input(3) }}

填空(4) {{ input(4) }}

填空(5) {{ input(5) }}

填空(6) {{ input(6) }}

填空(7) {{ input(7) }}