📄 monkey.cpp
字号:
/************************************************************
作者: 胡娟 200608204105.
工具: VC++ 6.0.
题目: 猴子选大王
/**********************************************************/
#include<stdio.h>
int choose(int M,int N) /*假设在m个猴子中传递令牌,最后一个拿着的就是大王*/
{
int i,k; /*i:剩下的猴子;k:令牌的当前位置(是在剩下的猴群圈中)*/
for(i=2,k=0;i<=M;i++) /* 每次淘汰1个,剩下的个数是2、3、...M */
k=(k+N)%i; /*这一句是令牌在i个猴子中传递N次的算法,同时,上一轮的令牌位置k将对这一轮的计算进行修正*/
return (++k)%M; /*让返回值从1开始*/
}
void main()
{
int m,n;
printf("\n*****************猴**子**选**大**王*************************\n");
printf("\n测试数据:\n当猴子数为8只,要数的数为10时。\n");
printf("大王的序号为:%d",choose(8,10));
printf("\n****************************************\n");
printf("\n请输入猴子数M和要数的数N:");
scanf("%d%d",&m,&n);
printf("大王的序号为:%d",choose(m,n));
putchar('\n');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -