ch8_14.c

来自「C语言程序设计上机指导与练习 冶金工业出版社 刘怀亮」· C语言 代码 · 共 37 行

C
37
字号
/*CH8_14*/
/*约瑟夫(Joseph)问题*/
#include<stdio.h>
#define N 10
#define m 3
void main()
{
	int p[N];
	int lenth;
	int remain;
	int i;
	for(lenth=0;lenth<N;lenth++)
		p[lenth]=1;            			/* 初始化标记*/
	remain=N;                  			/* 初始化余下人数*/
	lenth=0;
	i=0;
	while(remain>1)           			/* 圈中多于1个人时循环继续*/
	{
		while(p[i]==0)i=(i+1)%N;		/* 从在圈的人开始数*/
		
		lenth=(lenth+1)%m;         
		if(lenth==0)            		/*退出圈*/
		{
			p[i]=0;             		/* 修改标记*/
			printf("%d%c",i+1, ' ');	/* 输出编号*/
			remain--;              		/* 余下人数减1*/
		}
		i=(i+1)%N;               		/* 准备数下一个*/
	}/*while*/
}/*main()*/






⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?