选猴王

来源:互联网 发布:工作计划表软件 编辑:程序博客网 时间:2024/05/09 07:52

有一群猴子选猴王,它们排成一行,来回从1至p报数,报p者出列,最后一个没有出列的猴子为猴王,请设计一个程序为儿子选猴王。

 

解:将猴子从左到右编号。

#include<iostream.h>
#define N 30
#define P 7
void main(){
 int a[N+1];
 for(int i=1;i<=N;i++)
  a[i]=i;
 int k=0;
 int c=1;
  i=0;
  int j=0;
 while(k<N-1){
  i=i+c;
  if(i==N+1){i=N-1;c=-c;}
  else
   if(i==0)
   {i=2;c=-c;}
   if(a[i]!=0){
    j=j+1;
    if(j==P){
     j=0;
     a[i]=0;
     k=k+1;
    }
   }
 }
 for(i=1;i<N+1;i++)
  if(a[i]!=0)
   cout<<a[i];
}

0 0
原创粉丝点击