/*

    author:jiangxin

    Blog:http://blog.csdn.net/jiangxinnju

    Function:method of Josephus question

*/

#include <iostream>

using namespace std;

struct node

{

    int seq;

    node *next;

};

typedef struct node NODE;

void test_Josephus()

{

    /*假设共有n人,从第s个人开始数数,每数到m该人出列,后面的人重新开始数,知道全部人出列*/

    int n,s,m;

    NODE *head,*last,*current,*prev;

    cout << "Input the n,s,m(separate with space):";

    cin >> n >> s >> m;

for(int i=1;i<=n;i++) //建立循环链表

    {

        current = new NODE;

        current->seq = i;

        current->next = head;

        if(i == 1)

        {

            head = current;

            last = current;

        }

        else

        {

            last->next = current;

            last = last->next;

        }

    }

    current = head; //遍历循环链表,输出序列

    do

    {

        cout << current->seq << " ";

        current = current->next;

    }while(current!=head);

current = head; //将current置于第s个位置

    for(int i=1;i<s;i++)

    {

        current = current->next;

    }

    cout << endl;

for(int i=1;i<=n;i++) //共循环n轮,得到一个整体的输出序列

    {

        for(int j=1;j<m;j++)

        {

            prev = current;

            current = current->next;

        }

        cout << current->seq << " ";

        prev->next = current->next;

        delete current;

        current = prev->next;

    }

}

最新文章

  1. cocos2dx 入门
  2. h264
  3. &lt;string&gt;和&lt;string.h&gt;的区别
  4. ASP导出Word带页眉页脚,中文不乱码
  5. Java List 用法代码分析 非常详细
  6. 展讯CEO:低毛利生存 由中低端转向高端
  7. C#操作redis代码汇总
  8. spring xml 空模板-applicationContext.xml
  9. JQ无法修改input的type属性的替代解决方法
  10. SQL Server 创建作业系列问题
  11. “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数(转)
  12. PHP学习之旅——PHP环境搭建
  13. MS-DOS命令dir命令详细解析
  14. Odoo的模块和应用程序的区别和使用
  15. mongodb 遇到问题-查询单个需要包装id
  16. git 本地重命名文件夹大小写并提交到远程分支
  17. coursera吴恩达 机器学习编程作业原文件 及我的作业
  18. Codeforces Round #371 (Div. 2) B. Filya and Homework 水题
  19. iOS - OC - 字典快速遍历
  20. COCO 数据集使用说明书

热门文章

  1. 获取或者设置时,无后缀和A后缀和W后缀的区别
  2. HTML DOM简介
  3. 用于JDBC操作数据库的公共类
  4. (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。
  5. DbUtils使用时抛出Cannot get a connection
  6. Mysql错误问题记录
  7. Get_File_Name Usage in Oracle Forms 6i
  8. Mysql事件学习
  9. Vmware10.0 安装系统以及使用笔记
  10. java web开发必备知识