【4.7日题解】——约瑟夫问题(c代码表述)

简介: 【4.7日题解】——约瑟夫问题(c代码表述)

今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0

4.7日每日一题——约瑟夫问题


🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

⏳全文大约阅读时间: 20min


全文目录

☘前言☘

解题思路

📑写在最后

P1996 约瑟夫问题


解题思路

搞个链表直接模拟就好了,没那么复杂。


#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
    int data;
    struct node *next;
}NODE;
int main(){
    int m,n;
    scanf("%d %d",&m, &n);
    NODE head;      //头节点
    head.next = NULL;
    NODE *first;
    for(int i = 0;i < m;++i){   //建立链表
        NODE *tmp = (NODE *)malloc(sizeof(NODE));
        if(!i) first = tmp;
        tmp->data = m - i;
        tmp->next = head.next;//头插法
        head.next = tmp;
    }
    NODE *p = head.next,*q;
    if(n == 1){
        while(p){printf("%d ",p->data);p=p->next;}
        return 0;
    }
    first->next = head.next;//循环链表建立完成 0.0
    while(p != &head){
        for(int i = 0;i < n - 2;++i)    p = p->next;
        printf("%d ",p->next->data);
        if(p->next == p) break;
        q = p->next;
        p->next = p->next->next;
        p=p->next;
        free(q);
    }
    return 0;
}


挺好,不改了,不过看群友有拿数组模拟链表的,太强了。加油呀!


📑写在最后

今天就这样,明日再见0.0


相关文章
|
10月前
|
算法 C语言 容器
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145(下)
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145
78 7
|
10月前
|
算法 C语言 C++
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145(上)
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145
57 1
|
10月前
|
C语言
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145(中)
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145
74 1
|
C语言
C语言经典题目之 汉诺塔问题
C语言经典题目之 汉诺塔问题
97 0
洛谷P1424 小鱼的航程(改进版) C语言版
洛谷P1424 小鱼的航程(改进版) C语言版
|
存储 算法 C语言
【C语言蓝桥杯每日一题】——数字三角形
数字三角形🙌 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。
196 0
|
Java C语言
C语言实现双轴快排—例题leetcode 912(手敲
C语言实现双轴快排—例题leetcode 912(手敲
126 0
|
存储 C语言
C语言题解——倒置字符串(剑指Offer 第58题)
C语言题解——倒置字符串(剑指Offer 第58题)
109 0
C语言题解——倒置字符串(剑指Offer 第58题)
|
算法 C语言 C++
【C语言蓝桥杯每日一题】—— 既约分数
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 既约分数~ 都是精华内容,可不要错过哟!!!😍😍😍
127 0
|
C语言
C语言题解:经典递归题目(斐波那契数列、汉罗塔问题以及青蛙跳台阶问题)
C语言题解:经典递归题目(斐波那契数列、汉罗塔问题以及青蛙跳台阶问题)
192 0
C语言题解:经典递归题目(斐波那契数列、汉罗塔问题以及青蛙跳台阶问题)