有
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...
猴王微信PHP竞猜源码可搭建需要微信公众号支持有兴趣可以下载.
选猴王的c语言代码,c语言写的可以下载,vs2013编写
链表实现选猴王算法,选择猴子数量,选择第几个猴子报数,选择报第几个数的时候出列。
猴王股份案例分析.pdf
用线性表实现查,删 输入:猴子的总数n :从第r只猴子开始选 : 每次循环踢除第s只猴子 输出:最后一只猴子(猴王)的号码数
链式存储,数据结构
对于一个约瑟夫环问题的衍生问题———选猴王问题的解决程序,采用循环链表结构解决(源码中有详细注释)
#include #include #include #define NULL 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; typedef int Elemtype; typedef struct Cnode { Elemtype data; struct Cnode *next;...
QQ机器人(测试版) 本程序是由2013年2月15日完成,希望大家多多提出意见,意见邮箱地址软件里已提供,获取机器人更多功能,请在另一个QQ对机器人进行回复:@全部功能 发送:@问:XX 答:XX 作用:可以让我学习...
猴王大圣(毕业设计)_热搜指数平台的设计与实现.docx猴王大圣(毕业设计)_热搜指数平台的设计与实现.docx猴王大圣(毕业设计)_热搜指数平台的设计与实现.docx猴王大圣(毕业设计)_热搜指数平台的设计与实现.docx猴王大圣...
Milk.as 美猴王接水果代码 很好玩 ~来自于英雄联盟的美猴王带领大家接水果
猴王php+asp双版本 估计很多想要,这里分享给大家
521猴王出世.ppt
最新部编人教版小学五年级语文下册《猴王出世》知识点-.pdf
美猴王上课最新课件.ppt
《猴王出世》.ppt