当前位置: 首页 > article >正文

【算法】约瑟夫环

约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。

代码

//
// Created by Lunau on 2023/12/6.
//
//
// Created by Lunau on 2023/12/6.
//
#include<stdio.h>
#include <cstdlib>

//程序设计 约瑟夫环
void fun1() {
    int n,m;
    scanf("%d %d",&n,&m);
    int *flag = (int *)malloc(n * sizeof(int));
    int res = 0, cur = 0;   //res表示当前出列人数,cur表示当前一轮有效出列人数
    for (int i=0; res<= n; i=(i+1) % n) {
        if (flag[i]!=1) {   //统计有效出列人数
            cur++;
        }
        if (cur == m) { //达到m时出列
            flag[i] = 1;
            printf("%d ",i+1);
            cur=0; res++;   //cur重置,res出列人数加一
        }
    }
}

int main() {
    fun1();
}

在这里插入图片描述


http://www.kler.cn/news/160582.html

相关文章:

  • Audacity降噪消除视频中杂音
  • 面试操作系统八股文五问五答第一期
  • OSI七层模型与TCP/IP四层模型
  • 《形式语言与自动机理论(第4版)》笔记(二)
  • elment-ui部分ui组件在移动端也能实现自适应
  • Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能
  • 【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第一次作业
  • 【前端设计模式】之工厂模式
  • 文档一键黏贴供应商
  • sql常用语法练习
  • WTV380语音芯片赋能电蒸锅:智能声音提示与数码管显示驱动引领未来厨房革新
  • linux的磁盘管理
  • 基于PicGo实现Typora图片自动上传GitHub
  • 【EI会议征稿中】第三届信号处理与通信安全国际学术会议(ICSPCS 2024)
  • 五花八门客户问题(BUG) - 重复打印
  • 华为配置流量抑制示例
  • linux逻辑卷LVM
  • 【LeetCode刷题】-- 79.单词搜索
  • 机器学习之布谷鸟搜索算法(Cuckoo Search Algorithm,CSA)剖析
  • 【MySQL】:数据库基本认识
  • 【网络奇缘】- 计算机网络|深入学习物理层|网络安全
  • HarmonyOS4.0从零开始的开发教程01运行Hello World
  • Linux(centos)学习笔记(初学)
  • git 分支的创建与删除
  • kyuubi整合flink yarn session mode
  • 【唐山海德教育】一级建造师社保需交满多少年
  • 【数值分析】雅可比迭代和高斯-赛德尔迭代求解线性方程组应用举例(编程求解)
  • 使用 OpenFunction 在任何基础设施上运行 Serverless 工作负载
  • Python高级数据结构——B树和B+树
  • vue3版本学习