报数字(约瑟夫环问题)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报数字(约瑟夫环问题)相关的知识,希望对你有一定的参考价值。
Description
佳佳和幼儿园里的小朋友经常一起玩一个游戏:N个小朋友坐成一圈,从第一个小朋友开始报数,从1开始依次报,每个报到M的小朋友要起来表演节目,然后那个小朋友从圈里出去,接下来的小朋友继续从1开始。直到只剩下最后一个小朋友。佳佳一点也不喜欢自己表演,所以他想知道的是,他坐在哪个位置,才能一直坚持到最后呢?
Input
输入包括多组数据,每组数据是两个整数N,M(N,M<=1000000),输入以0
0结束
Output
对每组输入数据,输出佳佳坐的位置
Sample Input
3 1
3 2
0 0
3 2
0 0
Sample Output
3
3
3
代码:
#include <iostream>
int main(){
int n,m,i,l;
while(std::cin>>n>>m){
if(n==0&&m==0)
break;
l=0;
for(i=2;i<=n;++i)
l=(l+m)%i;
std::cout<<l+1<<std::endl;
int main(){
int n,m,i,l;
while(std::cin>>n>>m){
if(n==0&&m==0)
break;
l=0;
for(i=2;i<=n;++i)
l=(l+m)%i;
std::cout<<l+1<<std::endl;
}
}
以上是关于报数字(约瑟夫环问题)的主要内容,如果未能解决你的问题,请参考以下文章