Robin's Log

那能得叙曲幽静,唯有念头笑巍峨

猴子选大王(约瑟夫环另外的实现方式)

/*猴子选大王程序原理:
*用数组存储猴子的编号,以0表示猴子没有被选择
*程序可能还很有问题,大家找到问题一定告诉我啊。
*/
#include <stdio.h>

int main()
{
 int i, position = 0, change, client=0, n, m, monkey[30000];
 
 scanf("%d%d", &n, &m);
 
 //初始化数组
 for(i=1; i <= n; i++)
 {
  monkey[i]=0;
 }

 printf("淘汰的次序:/n");
    //主程序部分
 //程序执行的次数是可以有弹性控制的,最后打印的数字一定是大王的位置
    for(i=1; i<=n; i++)
 {
  do
  {
   ++position;
   if(position > n)
   {
    position=position % n;
   }
   if(monkey[position] != 1)
   {
    client++;
   }
   
  } while(client != (m+2));

  change=(position);
  if (change > n)
  {
   change=change % n;
  }
  monkey[change]=1;
  position=change;
  client=0;
  
  printf("%d ", change);
  
 }
 printf("/n大王就是:%d 号,呜呼……/n", change);
 return(0);
 
}

阅读更多
文章标签: 存储
个人分类: C/C++Learning Notes
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭