首页 > 代码库 > 一些项目——约瑟夫问题

一些项目——约瑟夫问题

Description

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

Input

输入n和m值。

Output

输出胜利者的编号。

Sample Input

5 3

Sample Output

4
 
 
代码
#include<iostream> using namespace std; int main() {     int n,m,i,mi=0,k=0,p[10],y;     cin>>n>>m;     for(i=0; i<n; i++)         p[i]=1;     for(i=0; i<n; i++)     {         mi++;         if(p[i]==0)             mi--;         if(mi==m)         {             p[i]=0;             k++;             mi=0;         }         if(k==n-1)         {             for(y=0; y<n; y++)                 if(p[y]==1)                     break;                 break;         }         if(i==n-1)             i=-1;     }     cout<<y+1;     return 0; }

一些项目——约瑟夫问题