当前位置: 首页 > 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/a/160582.html

相关文章:

  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • 贪心算法day03(最长递增序列问题)
  • Elastic Observability 8.16:增强的 OpenTelemetry 支持、高级日志分析和简化的入门流程
  • 【专题】计算机网络之网络层
  • 论文阅读《BEVFormer v2》
  • LeetCode【0031】下一个排列
  • 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】:数据库基本认识