首页 > 代码库 > 报数字(约瑟夫环问题)
报数字(约瑟夫环问题)
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;
}
}
报数字(约瑟夫环问题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。