约瑟夫问题

来源:互联网 发布:net stop mysql 编辑:程序博客网 时间:2024/05/21 14:06

Description

n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。

Input

输入nm值。

Output

输出胜利者的编号。

Sample Input

5 3

Sample Output

4

HINT

第一轮:3被杀
第二轮:1被杀

第三轮:5被杀

第四轮:2被杀

#include <iostream>using namespace std;int main(){int *p,a[100],i,n,x,number,j,m;number=x=j=0;   cin>>n;   cin>>m;p=a;for(i=0;i<n;i++)*(p+i)=i+1;while(x<n-1){if(*(p+j)!=0)number++;if(number==m){*(p+j)=0;x++;number=0;}j++;if(j==n)         j=0;}for(p=a;p<a+n;p++){if(*p!=0)cout<<*p;}return 0;}


0 0