约瑟夫斯问题

来源:互联网 发布:北大青鸟 java周末班 编辑:程序博客网 时间:2024/06/05 03:53
#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;}

原创粉丝点击