链表9(优化版)7-9 sdut-C语言实验-约瑟夫问题

简介: 链表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()
{
    int n,m,i,sum;
    struct node *head,*tail,*p,*t;
    scanf("%d %d",&n,&m);
    head=(struct node*)malloc(sizeof(struct node));
    head->data=1;
    head->next=NULL;
    tail=head;
    for(i=2;i<=n;i++)
    {
        p=(struct node*)malloc(sizeof(struct node));
        p->data=i;
        p->next=NULL;
        tail->next=p;
        tail=p;
    }
    tail->next=head;
    t=tail;
    p=head;
    while(p!=p->next)
    {
        int count=m-1;
        while(count--)
        {
            t=t->next;
            p=p->next;
        }
        t->next=p->next;
        p=p->next;
    }
    printf("%d\n",p->data);
    return 0;
}
目录
相关文章
|
1月前
|
存储 算法 Perl
数据结构实验之链表
本实验旨在掌握线性表中元素的前驱、后续概念及链表的建立、插入、删除等算法,并分析时间复杂度,理解链表特点。实验内容包括循环链表应用(约瑟夫回环问题)、删除单链表中重复节点及双向循环链表的设计与实现。通过编程实践,加深对链表数据结构的理解和应用能力。
60 4
|
4月前
|
存储 Java 开发者
揭秘!HashMap底层结构大起底:从数组到链表,再到红黑树,Java性能优化的秘密武器!
【8月更文挑战第24天】HashMap是Java集合框架中的核心组件,以其高效的键值对存储和快速访问能力广受开发者欢迎。在JDK 1.8及以后版本中,HashMap采用了数组+链表+红黑树的混合结构,实现了高性能的同时解决了哈希冲突问题。数组作为基石确保了快速定位;链表则用于处理哈希冲突;而当链表长度达到一定阈值时,通过转换为红黑树进一步提升性能。此外,HashMap还具备动态扩容机制,当负载因子超过预设值时自动扩大容量并重新哈希,确保整体性能。通过对HashMap底层结构的深入了解,我们可以更好地利用其优势解决实际开发中的问题。
125 0
|
5月前
链表5(考试用)7-5 sdut-C语言实验-链表的逆置
链表5(考试用)7-5 sdut-C语言实验-链表的逆置
35 0
|
5月前
链表8(法二考试专用)7-8 sdut-C语言实验-双向链表
链表8(法二考试专用)7-8 sdut-C语言实验-双向链表
26 0
|
5月前
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
35 0
|
7月前
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
6月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
6月前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
6月前
|
存储 算法 Java
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
66 2
|
7月前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
70 1

热门文章

最新文章