首页 > 编程语言 >【代码】约瑟夫问题——c++解决代码

【代码】约瑟夫问题——c++解决代码

时间:2024-10-22 13:18:02浏览次数:9  
标签:do 顺序 ++ 代码 杀掉 c++ 约瑟夫

哈喽大家好!我是@学霸小羊,上次讲了讲约瑟夫问题的背景,今天来讲讲怎样用代码实现。

(还没了解背景小伙伴的可以先去下面的网址学习一下)

【代码】约瑟夫问题——故事背景icon-default.png?t=O83Ahttps://blog.csdn.net/yangyanbin_sam/article/details/143152232?spm=1001.2014.3001.5501

首先,我们要将这个问题写清楚一些:

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

模版代码:

#include<bits/stdc++.h>
using namespace std;
main(){
    bool a[101]={0};
    int n,m,i,f=0,t=0,s=0;
    cin>>n>>m;
    do  // do ... while 这种循环至少执行一次循环体,如果while后面的判断失败则退出循环 
	{
        t++;//逐个枚举圈中的所有位置
        if(t>n)
        {
            t=1;//数组模拟环状,最后一个与第一个相连
        }
        if(!a[t])
        {
            s++;//第t个位置上有人则报数
        }
        if(s==m)//当前报的数是m
        {
            s=0;//计数器清零
            cout<<t<<' ';//输出被杀人编号
            a[t]=1;//此处人已死,设置为空
            f++;//死亡人数+1
        }

    }while(f!=n);//直到所有人都被杀死为止
	return 0; 
}

这是一种模拟的方法,通过代码模拟出杀人的顺序。

运行结果:

当然,这种方法只针对模拟。

好啦,今天就讲到这里,拜拜!

标签:do,顺序,++,代码,杀掉,c++,约瑟夫
From: https://blog.csdn.net/yangyanbin_sam/article/details/143153056

相关文章

  • Java 的开发效率究竟比 C++ 高在哪里_1
    在比较Java与C++在开发效率上的不同时,我们可以直接指出几点关键差异:Java的自动内存管理、跨平台能力、更强的标准库、以及较好的异常处理机制。特别地,Java的自动内存管理使用垃圾收集器来自动化对象的生命周期管理,这就意味着开发人员不需要手动分配和释放内存,大大减少了内存泄漏......
  • 代码随想录算法训练营第七天|leetcode454.四数相加II、leetcode383. 赎金信 、leetcod
    1leetcode454.四数相加II题目链接:454.四数相加II-力扣(LeetCode)文章链接:代码随想录视频链接:学透哈希表,map使用有技巧!LeetCode:454.四数相加II_哔哩哔哩_bilibili自己的思路:第一反应就是暴力搜索,一层一层for循环来完成,就是会超时1.1自己的代码纯纯暴力搜索classSolutio......
  • 【LeetCode】动态规划—790. 多米诺和托米诺平铺(附完整Python/C++代码)
    动态规划—790.多米诺和托米诺平铺题目描述前言基本思路1.定义2.理解问题和递推关系3.解决方法4.进一步优化5.小总结代码实现Python代码Python代码解释总结C++代码C++代码解释总结总结题目描述前言本文将详细讨论LeetCode上的"多米诺和三米诺平铺"问题。......
  • 库卡机器人维修常见报警代码KSS故障修复
    对库卡机器人工作中一些细节和一些安全的措施有所了解才能防患于未然。库卡机器人故障排查可通过观察KUKA机械手报警代码得知,故障代码以及原因有:——kuka机械臂提示文字KSS0121:电流过大原因:每根轴的电流都受到监视并且在电流输出过大时触发放大器内部的电流保护装置。——库......
  • 第40篇 ConfuserEx混淆代码,防止反编译
    要想自己的dll或程序禁止被反编译成功,可以使用ConfuserEx混淆代码1.正常反编译1.1创建一个demo控制台新建Test类,写个fun1.2正常编译看的效果目前有很多.NET的反编译工具,例如ILSpy,JustDecompile,dnSpy.下面使用dnSpy对ConsoleApp进行反编译。2.混淆编译dll流程使用Confu......
  • 如何轻松设置和使用零代码平台?蓝燕云零代码平台为例!
    如何轻松设置和使用低代码零代码平台?在数字化转型的大潮中,低代码(Low-code)和零代码(No-code)平台已成为许多企业和个人开发者快速构建应用程序的利器。这些平台通过简化编程过程,使得没有深厚技术背景的人也能开发出功能丰富且高效的应用程序。本文将详细探讨如何设置和使用低代......
  • SDCN 代码
    Q&A为什么不直接使用分布Q来监督分布P?原因有两个方面:(1)之前的方法考虑将聚类分配作为伪标签来以监督的方式重新训练编码器,即深度聚类(deepCluster)。然而,在实验中,我们发现交叉熵损失的梯度变化过于剧烈,无法防止嵌入空间受到干扰。(2)尽管我们可以用KL散度替代交叉熵损失,但仍然存在......
  • C++文字识别接口介绍-翔云-通用文字识别API接口
    文字识别接口是一种提供给开发者使用的API服务,主要功能是通过光学字符识别(OCR,OpticalCharacterRecognition)技术将图片中的文字转换为可编辑的文本。这种技术广泛应用于各种场景,比如证件识别、票据识别、书籍扫描等。使用第三方平台如翔云文字识别接口通常需要以下几......
  • 华为od面试手撕代码真题题型1——常规字符串,数组,矩阵
    常规字符串,数组,矩阵1实现超长数字减1思路:Java中用BigInteger类publicStringsubOne(Strings){ BigIntegerbi=newBigInteger(s);bi=bi.subtract(BigInteger.ONE);returnbi.toString();}2十八进制数比较大小任意进制的字符串a,转成十进制的数:In......
  • 基于神经网络为无人机开发模型预测控制 (MPC) 方案(Matlab代码实现)
      ......