C 猴子选大王(亚瑟夫环)

#include <stdio.h>
#define MAX 30
#define S 3
void main(){
    
    int i,j,k,temp,Monkey[MAX];

    for(i=0;i<MAX;i++)
       Monkey[i] = i+1;         //为猴子赋值 使其成为一串

    for(i=MAX-1;i>=0;i--){      //最后只剩下一只猴子。所以要执行30次
        
        for(k=0;k<S;k++){       //每次把数到S的猴子放到最后一个 下次循环从倒数第二个开始
           temp = Monkey[0];
           for(j=0;j<i;j++){
             Monkey[j]=Monkey[j+1];
           }
           Monkey[i] = temp;
        }
    }

    for(i=MAX-1;i>=0;i--)
        printf("%d\n",Monkey[i]);


}
posted @ 2012-10-18 00:46  ﹏Sakura  阅读(560)  评论(0编辑  收藏  举报