#include <stdio.h>
#include <string.h>
struct s
{
char y;
int num;
};
int main()
{
int i,n=0,count=0;
struct s p[30];
for(i=0;i<30;i++)
{
p[i].num=0;
p[i].y='@';
}
while(n<15)
{
for(i=0;i<30;i++)
{
if(p[i].num==0)
{
count++;
}
if(count==9)
{
p[i].num=1;
p[i].y='+';
count=0;
n++;
}
}
}
printf("The original circle is (+:papandom, @:christian);\n");
for(i=0;i<30;i++)
{
printf("%c ",p[i].y);
}
}
*约瑟夫问题。这是十七世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个基督教徒和15个异教徒在海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。
本题示例为 @ @ @ @ + + + + + @ @ + @ @ @ + @ + + @ @ + + + @ + + @ @ + (第一个人前无空格,每人中间1个空格)
**输出格式要求:"The original circle is (+:papandom, @:christian);\n" "%c "