约瑟夫问题

简介: 约瑟夫问题

约瑟夫问题

Time Limit: 1000MS Memory Limit: 65536KB

SubmitStatistic

Problem Description

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


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


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

Input

输入n和m值。

Output

输出胜利者的编号。

Example Input

5 3

Example Output

4

Hint

第一轮:3被杀第二轮:1被杀第三轮:5被杀第四轮:2被杀

Author

 

#include <stdio.h>
#include <stdlib.h>
struct node
{
    int data;
    struct node * next;
};
int main()
{
   int n, m, i, j;
   struct node *p, *head, *tail, *q;
   head = (struct node *)malloc(sizeof(struct node ));
   tail = head;
   scanf("%d%d", &n, &m);
    for(i = 0; i < n; i++)
    {
       p = (struct node *)malloc(sizeof(struct node ));
       p->data = i+1;
       tail->next = p;
       p->next = head->next;
       tail = p;
    }
    p=head;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
        {
            q = p;
            p = p->next;
        }
        q->next = p->next;
        p = q;
    }
    printf("%d\n", p->data);
    return 0;
}

 


相关文章
|
13天前
|
存储 C++ 索引
P1996 约瑟夫问题与线性表
P1996 约瑟夫问题与线性表
22 2
|
10月前
|
存储 算法
|
6月前
约瑟夫环问题的几种解法
约瑟夫环问题的几种解法
75 0
|
7月前
|
算法
约瑟夫环问题(三种方法)
约瑟夫环问题(三种方法)
95 0
|
10月前
|
Java
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
65 0
|
11月前
|
算法 Python
约瑟夫问题
约瑟夫问题
63 0
|
11月前
|
算法 索引 Python
细究“约瑟夫环”
细究“约瑟夫环”
78 0
约瑟夫环问题
使用queue<int>q记得加上头文件#include<queue>
55 0
【线性表】洛谷P1996 约瑟夫问题
前言 本题来自洛谷P1996. 题目链接:约瑟夫问题 - 洛谷
55 0
约瑟夫环
题目: 已知n个人(以编号1,2,3--n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人有出列;以此规律重复下去,知道圆桌周围的人全部出列。输出出列顺序和最后剩下的人。
75 0