博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
猴子选大王
阅读量:6650 次
发布时间:2019-06-25

本文共 1228 字,大约阅读时间需要 4 分钟。

Description

猴子选大王,有N只猴子,从1~N进行编号。它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数。第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1。如果一只猴子报的数字是M,则该猴子出列,下一只猴子重新从1开始报数。剩下的猴子继续排成一个圆圈报数,直到全部的猴子都出列为止。最后一个出列的猴子胜出。

 

Input

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<=1000) and M(0<M<=10000).

Output

For each test case, print out the number of the Monkey King.

Sample Input
 Copy sample input to clipboard
25 24 3
Sample Output
31
#include
using namespace std;struct Node{ Node* next; int data;};Node* Create(int n){ Node* head = new Node; Node*p, *pre; head->next = NULL; head->data = 1; pre = head; for (int i = 2; i <= n; i++) { p = new Node; p->data = i; p->next = NULL; pre->next = p; pre = p; } pre->next = head; return head;}void ChooseKing(Node* h, int M){ int count; while (h->next != h) { count = 1; while (count
next; count++; } Node*q = h->next; h->next = h->next->next; h = h->next; delete q; } cout << h->data << endl; delete h;}int main(){ int m; cin >> m; while (m-->0) { int n, M; cin >> n >> M; Node*h = Create(n); ChooseKing(h, M); } return 0;}

转载于:https://www.cnblogs.com/KennyRom/p/5910439.html

你可能感兴趣的文章
124. Binary Tree Maximum Path Sum
查看>>
Linux ext3 ext4 区别
查看>>
同时调整lv分区的大小(减少一个,增加另一个)
查看>>
ArrayList
查看>>
Node学习2-基础知识/HelloWorld/模块调用/global/process
查看>>
javascript异步执行函数导致的变量变化问题解决思路
查看>>
CentOS 6.5_X64下安装MongoDB数据库
查看>>
【原】mysql 视图
查看>>
微信授权登录
查看>>
Visual Studio Issues
查看>>
在 SQLite 和 ListView之间格式化一些数据
查看>>
stackoverflow愚人节彩蛋效果
查看>>
剑指offer第3题:从尾到头打印链表
查看>>
python 链接sharepoint 2013 REST api
查看>>
BZOJ1061:[NOI2008]志愿者招募(费用流)
查看>>
Web前端优化最佳实践及工具集锦
查看>>
两个想法
查看>>
Spark Streaming揭秘 Day20 动态Batch size实现初探(上)
查看>>
无限极分类,传递一个父ID,返回所有子集
查看>>
最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
查看>>