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]);
}
生命只有一次。