#include <iostream>
using namespace std;
int J(int n)
{
if(n==1)
{
return 1;
}
if(n%2==0)
{
return 2*J(n/2)-1;
}
if(n%2!=0)
{
return 2*J(n/2)+1;
}
}
int main()
{
int n;
cout<<"总人数:";
cin>>n;
while(n<1)
{
cout<<"请重新输入!"<<endl;
cin>>n;
}
int a;
a=J(n);
cout<<"最后一个出列的人的编号:"<<a<<endl;
return 0;
}
约瑟夫斯问题
最新推荐文章于 2022-01-02 17:57:25 发布