⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josephus1.cpp

📁 是一本教程的实例代码,可以下载后直接运行,即可以得到答案.
💻 CPP
字号:
#include "SeqList.h"                     //顺序表类
void display(int n,int s,int d) 
{
    SeqList ring1(n);                    //声明并初始化顺序表ring1
    ring1.create(n);                     //顺序表ring1中添加n个自然数
    cout<<"ring:\t";
    ring1.output();
    int i,j,k;
    i=s-1;                               //从第s个开始计数
    k=n;
    while(k>1)                           //n-1个人依次出环
    {
        j=0;
        while(j<d)
        {
            i=i%n+1;                     //将顺序表看成环形
            if(ring1.get(i)!=0)          //不能以ring1.table[i]形式访问SeqList类中的private变量table
                j++;                     //计数
        }                
        cout<<"out :  "<<ring1.get(i)<<"\t";
        ring1.set(i,0);                  //第i个人出环,设置第i个位置为空
        k--;
        cout<<"ring:\t";
        ring1.output();
    }
    i=1;
    while(i<=n && ring1.get(i)==0)       //寻找最后一个人
        i++;
    cout<<"The final person is "<<ring1.get(i)<<"\n";
}

void main(void)
{
    display(5,1,2);
}
/*
程序运行结果:
ring:	1  2  3  4  5  
out :  2	ring:	1  0  3  4  5  
out :  4	ring:	1  0  3  0  5  
out :  1	ring:	0  0  3  0  5  
out :  5	ring:	0  0  3  0  0  
The final person is 3
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -