/*这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。*/
#include <stdio.h>
void main()
{
int a[31];
int i,n,j=1,k,m;
for(i=1;i<=30;i++)
a[i]=i;
for(i=1;i<=15;i++)
{
for(k=1;k<=9;k++)
{
if(j>30)j=1;
while(a[j]==0)
if(++j>30)j=1;
j++;
}
a[j-1]=0;
}
for(i=1;i<=30;i++)
if(a[i]==0) printf("+");
else printf("@");
}
15个教徒和15 个非教徒在深海上遇险
最新推荐文章于 2021-12-13 11:33:00 发布