#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); } }
*约瑟夫问题。这是17世纪法国数学家加斯帕在《数字游戏问题》中讲述的一个故事:15个基督徒和15个异教徒在海上遇险,一半的人必须投入海中,其余的人才能幸免于难。于是他想出了一个办法:30个人围成一个圈,从第一个人开始依次报数,每个人到第九个人都会把他扔进海里。问怎样排法,才能让每次投入大海的都是异教徒。 本题示例为 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ (第一个人前无空格,每人中间1个空格) **输出格式要求:"The original circle is ( :papandom, @:christian);\n" "%c "