0
点赞
收藏
分享

微信扫一扫

【PTA】7-7 约瑟夫问题变形 (10 分)

柠檬的那个酸_2333 2022-03-13 阅读 158

7-7 约瑟夫问题变形 (10 分)

编号为1…N的N个小朋友玩游戏,他们按编号顺时针围成一圈,按顺时针次序报数,从第1个人报到第M个人出列;然后再从下个人开始报到第M+1个人出列;再从下一个人开始报到第M+2个人出列……以此类推不断循环,直至最后一人出列。请编写程序按顺序输出出列人的编号。 

输入格式:

输入为2个整数,分别表示N、M(1≤N,M,K≤10000)。

输出格式:

输出为一行整数,为出列人的编号。每个整数后一个空格。

输入样例1:

6 3

输出样例1:

3 1 2 6 4 5 

输入样例2:

10 2

输出样例2:

2 5 9 6 4 8 7 3 1 10 

输入样例3:

5 1

输出样例3:

1 3 2 5 4 

解析及 代码如下:

#include <stdio.h>
int main(){
	int n,m,x=-1,t=0,k; //注意因为数组下标,x 要-1
	int a[1001]={0};  //用数组判断是否出列
	scanf("%d %d",&n,&m);
	while(t!=n){  //输出n个值
		k=m; 
		while(k){
			x=(x+1)%n;
			while(a[x]!=0)
			    x=(x+1)%n; //每出列一个,都要+1
			k--;
		}
		printf("%d ",x+1);
		a[x]=1; //标记已经出列
		m++;	
		t++;
	}
}
举报

相关推荐

7-7 约瑟夫环 (25 分)

[PTA] 7-7 计算摄氏温度

7-7 猴子吃桃问题 (15 分)

7-7 7003 组合锁(PTA程序设计)

7-2 约瑟夫环 (10 分) python

7-7 实验2_2_公历闰年 (100 分)

0 条评论