约瑟夫问题

简介: 约瑟夫问题

约瑟夫问题

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;
}

 


相关文章
|
1月前
|
机器学习/深度学习
约瑟夫环
【10月更文挑战第11天】
56 5
|
1月前
约瑟夫环问题
约瑟夫环
23 0
|
6月前
|
存储 算法 C语言
【数据结构与算法】【约瑟夫问题】还在用递归?教你用链表秒杀约瑟夫
【数据结构与算法】【约瑟夫问题】还在用递归?教你用链表秒杀约瑟夫
|
存储 算法
约瑟夫环问题的几种解法
约瑟夫环问题的几种解法
100 0
|
Java
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
104 0
|
算法 Python
约瑟夫问题
约瑟夫问题
100 0
PTA猴子选大王(约瑟夫环问题)
PTA猴子选大王(约瑟夫环问题)
126 1
|
算法 索引 Python
细究“约瑟夫环”
细究“约瑟夫环”
97 0
【线性表】洛谷P1996 约瑟夫问题
前言 本题来自洛谷P1996. 题目链接:约瑟夫问题 - 洛谷
87 0