sicily 猴子选大王
题目描述
猴子选大王,有N只猴子,从1~N进行编号。它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数。第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1。如果一只猴子报的数字是M,则该猴子出列,下一只猴子重新从1开始报数。剩下的猴子继续排成一个圆圈报数,直到全部的猴子都出列为止。最后一个出列的猴子胜出。
输入格式
The first line is an integer t, indicating the number of test cases. Then there are t lines and each line contains two positive integer N(0<N<=100) and M(0<M<=100).
For each test case, print out the number of the Monkey King.
2
5 2
4 3
3
1
--------------------------我不是分割线-------------------------------------------------------------- 分析:开始时并没有考虑太多,就选择了用struct的数组来简单实现,不过时间上耗费略大
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; struct data
{
int count;
bool is;
}; int cmp(data a[],int n){
int count1=,out;
for (int i = ; i < n; ++i)
{
if (a[i].is==)
{
++count1;
out=a[i].count;
}
}
if (count1==)
{
return out;
}
else{
return ;
}
}
int main(int argc, char const *argv[])
{
int t;
cin>>t;
for (int i = ; i < t; ++i){
int m,n;
cin>>m>>n;
data monkey[m];
for (int i = ; i <m; ++i)
{
monkey[i].count=i+;
monkey[i].is=;
}
int ji=;int count2=;int i=;
int isf=cmp(monkey,m);
while(!isf){
if (monkey[i].is==)
{
++count2;
if (count2==n)
{
monkey[i].is=;
count2=;
}
}
++i;
if(i==m){
i=;/*实现循环,保证由count2来决定循环撤出的有效性*/
}
isf=cmp(monkey,m);
}
cout<<isf<<endl;
}
return ;
}
sicily 猴子选大王的更多相关文章
- POJ3750: 小孩报数问题+一道经典约瑟夫问题(猴子选大王)
又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 # ...
- PHP编程----猴子选大王
<?php/** * 猴子选大王 * 17个猴子围成一圈,从某个开始报数1-2-3-1-2-3---报"3"的猴子就被淘汰, * 游戏一直进行到圈内只剩一只猴子它就是猴大王了 ...
- 猴子选大王 (约瑟夫环)(c#)
猴子选大王问题: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈, 从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子, ...
- PHP洗牌、猴子选大王两个小算法
<一>洗牌算法 /** *洗牌算法washCard *@param $cardNum *@return array */ function washCard($cardNum) { $ca ...
- 猴子选大王的c#实现
原文地址:猴子选大王的c#实现作者:余文 今天被问到了猴子选大王的意思,题目大意就是说有n只猴子围坐成一个圈,按顺时针方向从1到n编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再 ...
- 猴子选大王【PHP】
目录 猴子选大王 指针解决 数组压栈 猴子选大王 一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不 ...
- C语言程序设计-猴子选大王[链表应用]
2032 猴子选大王 Description 有N只猴子,从1~N进行编号.它们按照编号的顺时针方向排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报的第一个数字为1,以后每只猴子报的数字都是它们前 ...
- 约瑟夫环问题(猴子选大王)PHP版
约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,…,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再 ...
- SYCOJ27猴子选大王
题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然 ...
随机推荐
- php实现设计模式之 组合模式
<?php /** * 组合模式 * * 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性 * * * 1) 抽象构件角色Co ...
- 从零开始学 Java - Windows 下安装 JDK
关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...
- android largeheap 的设定
现在公司在做tv端的APP,我的任务是视频点播功能,在看公司原有代码的基础上看到在manifiest里面设置了largeheap,所以查阅了一下资料,作为笔记 http://blog.csdn.net ...
- js事件委托
什么是事件委托:通俗的讲,onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 也 ...
- ios页面过渡效果插件Kontext
效果体验:http://keleyi.com/keleyi/phtml/html5/28.htm 以下是代码: <!doctype html> <html> <head& ...
- Centos6_64 rpm打包实践
安装rpmbuild sudo yum install rpm-build 普通用户的配置 /home/you/rpmbuild/ 假设是要构建rpm的目录 先说说rpmbuild有什么用,给一个例子 ...
- ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
使用VS2010创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了 ...
- va_start和va_end使用详解
本文主要介绍va_start和va_end的使用及原理. 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 ...
- iOS MJRefresh设置MJRefreshStateNoMoreData状态图片
MJRefresh地址 // 代码地址: https://github.com/CoderMJLee/MJRefresh// 代码地址: http://code4app.com/ios/%E5%B ...
- AlertDialog的六种创建方式
AlertDialog的六种创建方式 创建AlertDialog的步骤: 1.创建AlertDialog.Builder对象 2.调用Builder对象的setTitle方法设置标题,setIcon方 ...