约瑟夫问题(最简)

若如初见. 提交于 2019-12-22 11:08:12

1.问题描述

约瑟夫环问题的基本描述如下:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,要求找到最后一个出列的人或者模拟这个过程。

 

#include<iostream>
using namespace std;
int main()
{
    int n,m,k,ans=0;
    cin>>n>>k>>m;
    for(int i = 2; i <= n; i++)ans = (ans + m) % i;
    cout<<(ans+k)%n<<endl;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!