SDUT 链表9-------7-9 sdut-C语言实验-约瑟夫问题

简介: SDUT 链表9-------7-9 sdut-C语言实验-约瑟夫问题

7-9 sdut-C语言实验-约瑟夫问题


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


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


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


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


输入格式:

输入n和m值。

输出格式:

输出胜利者的编号。

输入样例:

5 3

输出样例:

4


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    struct node *next;
};
int main()
{
    struct node *head,*tail,*p,*q;
    int n,m;
    scanf("%d %d",&n,&m);
    head=(struct node*)malloc(sizeof(struct node));
    head->next=NULL;
    tail=head;//建立链表
    for(int i=1; i<=n; i++)
    {
        p=(struct node*)malloc(sizeof(struct node));
        p->data=i;
        p->next=NULL;
        tail->next=p;
        tail=p;
    }//对链表中的每一个赋值
    head=head->next;//对于循环链表要注意head是有数值的,不能和之前一样赋值为NULL
    p->next=head;//将最后的指向head
    tail=head;
    while(tail->next!=head)
    {
        tail=tail->next;
    }//寻找head之前的,方便删除链表中的元素
    p=head;
    while(p->next!=p)
    {
        int t=m-1;//要注意是从1开始喊,而使用while时0时才停止,因此要-1
        while(t--)
        {
            tail=tail->next;
            p=p->next;
        }//进行喊数
        tail->next=p->next;
        p=p->next;//删除链表元素过程
    }
    printf("%d",p->data);
}
目录
相关文章
|
4月前
链表9(优化版)7-9 sdut-C语言实验-约瑟夫问题
链表9(优化版)7-9 sdut-C语言实验-约瑟夫问题
21 0
|
4月前
链表5(考试用)7-5 sdut-C语言实验-链表的逆置
链表5(考试用)7-5 sdut-C语言实验-链表的逆置
25 0
|
4月前
链表8(法二考试专用)7-8 sdut-C语言实验-双向链表
链表8(法二考试专用)7-8 sdut-C语言实验-双向链表
20 0
|
4月前
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
32 0
|
4月前
链表6(法二好理解)------ 7-6 sdut-C语言实验-有序链表的归并分数 20
链表6(法二好理解)------ 7-6 sdut-C语言实验-有序链表的归并分数 20
23 0
|
6月前
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
5月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
5月前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
5月前
|
存储 算法 Java
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
50 2
|
6月前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
53 1