第9周项目1 - 猴子选大王(数组版)

来源:互联网 发布:床上用品知乎 编辑:程序博客网 时间:2024/04/27 21:15

问题及代码:

 /*   Copyright (c)2015,烟台大学计算机与控制工程学院   All rights reserved.   文件名称:第9周项目1 - 猴子选大王(数组版).cpp   作    者:魏永恒  完成日期:2015年11月27日   版 本 号:v1.0      问题描述: 一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。            从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王。             输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子。              要求采用数组作为存储结构完成。    输入描述:猴子的个数与出队的序号。   程序输出:出队顺序。   */
    #include <stdio.h>      #define MaxSize 8      void king(int m,int n)//m猴子的数量,n是出列的数。      {          int mon[MaxSize];          int i=0,j=0,t=-1;          while(i<m)          {                    mon[i]=1;              i++;          }          i=0;          while(i<m)          {                    while(j<n)              {                  t=(t+1)%m;                  if(mon[t]==1)                  j++;              }              mon[t]=0;              printf("%d ",t+1);              i++;              j=0;                      }            }            int main()      {          int m,n;          printf("请输入猴子的个数及出列的序号。");          scanf("%d %d", &m, &n);          king(m,n);          return 0;      }  
运行结果:

知识点总结:

约瑟夫问题的数组解法。
0 0
原创粉丝点击