ACM-约瑟夫问题

博客详细介绍了约瑟夫问题,即n只猴子围成一圈,按顺时针方向报数,数到m的退出,直至只剩一只猴子。通过模拟算法来解决此问题,输入n和m,输出最后猴王的编号。提供了解题思路和参考程序。
摘要由CSDN通过智能技术生成

问题描述

        约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从 1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。

输入数据

       每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m, n < 300)。最后一行是:
       0 0

输出要求

       对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号

输入样例

6 2
12 4
8 3
0 0

输出样例

5
1
7

解题思路

        初一看,很可能想把这道题目当作数学题来做,即认为结果也许会是以 n 和 m 为自变量的某个函数 f(n,m),只要发现这个函数,问题就迎刃而解。实际上,这样的函数很难找,甚至也许根本就不存在。用人工解决的办法就是将 n 个数写在纸上排成一圈,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值