📄 ch8_14.c
字号:
/*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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -