【苦练基本功1】三种方法实现约瑟夫环问题

本文介绍了约瑟夫环问题,描述了利用数组、循环链表和数学归纳法三种方法来解决此问题,详细阐述了每种方法的实现过程,并给出了相应的结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.约瑟夫环问题描述

有n个人围城一圈,按顺序编号,从第一个人开始报数,从1报到m,凡报到m的人退出圈子,然后接着报数,问最后留下来的是原来的第几号的那位?

2.数组实现

用长度为n的数组存储人的编号,退出的人编号置为0,当n-1个人都退出后,剩下的那个编号不为0的人就是要找的人。

#include <stdio.h>

void left_num(int* a,int n,int m) {
    int out = 0,count = 0,i = 0;    //out为出去的人数,count为报数,i为目前报到第几个人
    int *p = a;
    int num = 0;
    for(num = 0;num < n;num++) {
        *(a+num) = num+1;
    }   //为n个人编号1-n
    while (out < n-1) {
        if (*(p+i) != 0) {
            count ++;   //不等于0才报数+!
        }
        if (count == m) {
            count = 0;
            *(p+i) = 0
当然值得!Python 是一门非常流行和强大的编程语言,它有许多优点,使其成为很多人的首选编程语言。无论你是想成为一名软件工程师、数据分析师、机器学习工程师还是网络开发者,掌握 Python 都会给你带来许多好处。 下面是一些值得你努力学习 Python 的原因: 1. 简单易学:Python 的语法简洁明了,易于理解和上手。相对于其他编程语言,Python 的代码更加可读性强,因此对初学者来说是一门很友好的语言。 2. 广泛应用:Python 是一门通用编程语言,可以应用在许多不同领域,如网络开发、数据分析、人工智能、科学计算、自动化脚本等。无论你的兴趣是什么,Python 都可以满足你的需求。 3. 强大的生态系统:Python 拥有丰富的第三方库和工具,这些库可以帮助你快速开发各种应用。例如,NumPy、Pandas 和 Matplotlib 等库在数据分析和科学计算方面非常强大,而 Django 和 Flask 等库则为 Web 开发提供了便利。 4. 高薪就业机会:因为 Python 在许多领域都被广泛使用,掌握 Python 编程技能可以增加你在求职市场上的竞争力。Python 相关的职位薪资通常也相对较高。 5. 社区支持:Python 拥有庞大的开发者社区,你可以在其中获取到丰富的学习资源、解决问题的支持和代码示例。这使得学习和成长变得更加容易。 无论你是初学者还是有一定编程经验的人,苦练 Python 都是值得的。它将为你打开许多机会,帮助你实现自己的编程目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值