约瑟夫问题 sdutoj 1197

原创 2016年07月27日 10:45:03

约瑟夫问题

Time Limit: 1000MS Memory limit: 65536K

题目描述

n个人想玩残酷的死亡游戏,游戏规则如下:

n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。

请输出最后一个人的编号。

输入

输入n和m值。

输出

输出胜利者的编号。

示例输入

5 3

示例输出

4

///使用了多组输入,循环链表,利用整除判断是否“被杀”

#include <iostream>
#include <cstdlib>
using namespace std;

struct node
{
    int data;
    node *next;
}*p,*tail,*head;

int main()
{
    int n,m,i,flag;
    while (cin>>n>>m)
    {
        flag=0;
        head=new node;
        head->data=1;
        head->next=NULL;
        tail=head;

        for (i=2; i<=n; i++)
        {
            p=new node;
            p->data=i;
            tail->next=p;
            p->next=head;
            tail=p;
        }

        tail=p->next;///tail->data=1,tail=head;
        ///p is before tail ///p是tail的前驱
        while(n>1)
        {
            flag++;
            if (flag%m==0)
            {
                p->next=tail->next;///delete tail
                tail=tail->next;
                n--;
            }
            else
            {
                tail=tail->next;
                p=p->next;
            }
        }
        cout<<tail->data<<endl;
    }
    return 0;
}



版权声明:有错误麻烦赐教,感激不尽~~~(转载留言哦~)

约瑟夫问题--两种解法

题目大家都熟悉: 题目描述 n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人...

约瑟夫

/*约瑟夫两种递归的区别(一个求最后活下来的,一个求的是死掉的人位置) 1. (1)s=0; for (i=2;i...

约瑟夫问题

约瑟夫问题 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 n个人想玩残酷的死亡游戏,游戏规则如下: n...

约瑟夫问题

C语言实验题——约瑟夫问题 时间限制(普通/Java):3000MS/10000MS          运行内存限制:65536KByte 描述 n个人想玩残酷的死亡游戏,游...

sdut oj1197 约瑟夫问题(循环链表)

题目链接:点击打开链接 约瑟夫问题 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 n个人想玩残酷的死亡游戏,游戏...

有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他下一个人重新开始1到m的报数,如此下去直到全部都出圈为止。现要求按出圈次序.给出n人的顺序表

设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每1...

约瑟夫问题

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

约瑟夫问题

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

约瑟夫问题

约瑟夫问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description n个人想...

约瑟夫问题

约瑟夫问题 题目描述 n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:约瑟夫问题 sdutoj 1197
举报原因:
原因补充:

(最多只允许输入30个字)