有
n
个猴子参加猴王选举,按照
m
进行循环报数。数到
m
的猴子被淘汰,
直到剩余最后一个猴子变为大王。
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#define KICK 2
int findKing(int monkeyNum, int round)
{
int *arr = (int*) malloc(sizeof(int) * monkeyNum);
int count = 0;
int i = 0;
while(true)
{
// N step forward
for(int j =0; j+1 <round; j++)
{
while(KICK == *(arr + i%monkeyNum))
{
i++;
}
i++;
}
//make sure it's not kick out
while(KICK == *(arr + i%monkeyNum))
{
i++;
}
//then kick out it
if (KICK != *(arr + i%monkeyNum))
{
std::cout << "kick out:" << i%monkeyNum <<std::endl;
*(arr + i%monkeyNum) = KICK;
count ++;
i++;
}
// if there is only one left
// show it's position
if (count + 1 == monkeyNum)
{
while(KICK == *(arr + i%monkeyNum))
{
i++;
}
return i%monkeyNum;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "the king is :" << findKing(100,4);
int i;
std::cin >>i;
return 0;
}
分享到:
相关推荐
猴王问题源代码,C语言书写,可直接运行。绝对值得下载
自动报数,报3的自动退出,当猴子数小于3时,报1的为猴王
//④猴王选举,并输出猴王; Check(head, m); return 0; } //编译生成链表子函数,这里采用*Ge,Ge和形参指向相同的地址,修改后面的有效; //另外Ge可以修改为别的地址,而不影响形参的指向。 Monkey *Create(int...
石猴的智慧、勇气和自信在他的言行中体现得淋漓尽致,比如他主动提出进入水帘洞探路,成功后又提出以信守承诺为原则选举猴王,展现了他的领导才能和果断决策。 在学习古代白话文时,理解文中的生字词至关重要。例如...
猴子选猴王是一种选举机制,每次淘汰票数最少的猴子,直到只剩下一只猴子为止。这个问题可以通过模拟选举过程来解决,使用优先队列(最小堆)来快速找到票数最少的猴子,并进行淘汰。 ```java import java.util....
这个问题是经典的计算机科学中的算法问题,通常称为"约瑟夫环"或"约瑟夫问题"(Josephus Problem)。在这个问题中,猴子们按照一定的规则淘汰,最终剩下的一个被选为大王。题目中给出了四种不同的解决方案,分别使用...
这是一个基于数组操作的经典算法问题,也被称为“猴子选大王”或“猴子选举”。假设有一群猴子,每轮它们通过抛硬币决定生死,最后剩下的那只就是大王。如果数组中的元素代表猴子,每一轮我们移除数组中的一个元素...
《猴子选大王问题(约瑟夫问题)的C++实现》 约瑟夫问题,又称猴子选大王问题,是一种著名的理论问题,通常在计算机科学中被用来讲解数据结构和算法。这个问题描述如下:一群编号从1到m的猴子围成一圈,从第1号开始...
例如,在进行团队选举时,算法可以用来模拟成员的投票过程,并找出得票最多的候选者;在排序问题中,可以利用类似的思想来实现某些特定的排序算法;在搜索问题中,算法也可以用来寻找特定的节点或元素。此外,猴子选...
然而,提案的时间、内容和程序必须符合相关规定,否则可能导致纠纷,如“猴王”股东大会的临时提案风波。 提案权的行使有时会遇到分拆提案的效力问题,如“申华实业”案例中,完整提案被拆分,导致选举结果出乎意料...
问题5提到的猴群选举猴王体现了社会等级的存在,而问题19进一步解释了动物社会行为的特征,包括群体内部的组织、成员之间的分工以及可能存在的等级制度。 【知识点六:哺乳动物的特征】 哺乳动物的主要特征在问题6...
猴子要选大王,选举方法如下:所有猴子按1,2,……,m编号并按照顺序围成一圈。从第一个开始数,每数到第n个,该猴子就跳出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。m和n由键盘输入,打印出...
游戏规则是按照顺时针方向报数,每次报数到指定数字(例如3)的猴子将被淘汰出局,剩下的猴子继续游戏,直到最后只剩下一只猴子,这只猴子就是“猴王”。 #### 二、C语言中的数组与指针运用 ##### 2.1 数组初始化 ...