基础算法--递归(一)

汇编实现1到100求和 用8086汇编实现1到100求和并将结果显示到显示器上 立即下载

 

1.汉诺塔

#include <iostream>

using namespace std;

 

void fac(int n, char A, char B, char C)

{

if (n==1) cout<<"move "<<n<<": "<<A<<"-->"<<C<<endl;

else

{

fac(n-1,A,C,B);

cout<<"move "<<n<<": "<<A<<"-->"<<C<<endl;

fac(n-1,B,A,C);

}

}

 

int main()

{

int n;

cin>>n;

fac(n,'A','B','C');

return 0;

}

 

2.普通背包问题

设有一个背包可以放入的物品重量为S,现有n件物品,重量

分别是w1,w2,w3,…wn。问能否从这n件物品中选择若干件

放入背包中,使得放入的重量之和正好为S。如果有满足条件的

选择,则此背包有解,否则此背包问题无解。

 

#include <iostream>

using namespace std;

 

int knap(int s,int n,int w[])

{

 

if(s==0)   return 1;

if(s<0||n<1) return 0;

if(knap(s-w[n-1],n-1,w)==1)

{

cout<<w[n-1]<<" "<<endl;

return 1;

}

return knap(s,n-1,w);

}

 

int main()

{

int s,n;

int w[5]={1,3,5,7,9};

s=20;

n=5;

int x=knap(s,n,w);

if(x==1)

cout<<"问题有解"<<endl;

else

cout<<"问题无解"<<endl;

 

return 0;

}

 

3. 0-1背包

 

#include <iostream>

using namespace std;

int timeval[110];

int val[110];

 

  int MaxVal(int n, int s)

  {

  if(n<=0 || s<=0) return 0;

  if( timeval[n]<=s && (MaxVal(n-1,s-timeval[n])+val[n])>MaxVal(n-1,s))

return        MaxVal(n-1,s-timeval[n])+val[n];

return MaxVal(n-1,s);

}

 

  int main()

  {

  int s,n,i;

  cin>>s>>n;

  for (i=1; i<=n; i++)

  cin>>timeval[i]>>val[i];

  cout<<MaxVal(n,s)<<endl;

  return 0;

}

MATLAB出现”警告: 名称不存在或不是目录“的解决方案 MATLAB出现 警告: 名称不存在或不是目录 的解决方案1. 出现错误2. 问题解释3. 解决方法4. 特殊情况5. 问题解决6. 多多点赞交流 1. 出现错误 打开MATLAB突然发现,出现下面的错误: 提示我们不存在这样的路径。 2. 问题解释 这样的错误很明显,我们曾经在预设路径中添加了这个文件夹。 在某种情况下,我们把它删除了,现在MATLAB找不到它了。 (这里我在桌面上添加了新建文件夹,然后将其添加到MATLAB的搜索路径中。之后把新建文件夹删除了,所以就会出现这样的报错) 3. 解决方法 阅读详情

相关推荐

VScode搭建Opencv(C++开发环境)

VScode配置Opencv一、准备软件二 、下载软件1、MinGw下载2、 Cmake下载3、Opencv下载三、编译1、cmake-gui2、make3、install四、 VScode配置1、launch.json2、c_cpp_properties.json3、tasks.json五、测试 用了半天事件,看了各种的博客终于配置成功了,在这里记录并分享一下,让更多的人少走弯路。 本次环境是Win 10. 一、准备软件 我们本次用到的3个软件,(建议读者文件路径,文件版本 尽量都和我相同,这样不容易出错

河旬的博客 8万+

C语言递归及经典例题详解

此篇博客包含C语言常见递归题目,递归经典题目汉诺塔、青蛙跳台阶等问题详细解答思路和代码,欢迎友友们阅读指正。

m0_69260381的博客 1万+

20240128 C#与SCPI协议实战:轻量级仪器控制库ScpiNet应用指南

本文详细介绍了轻量级C#库ScpiNet在仪器控制中的应用。相较于传统的NI-VISA,ScpiNet无需安装庞大运行时,通过纯C#实现直接与USB或以太网设备通信,支持跨厂商SCPI仪器。文章提供了从快速连接到实战封装、错误处理的完整指南,帮助开发者构建简洁高效的自动化测试系统。

h9j8k7l6m5n的博客 547

函数递归(C语言版)

C语言函数递归

日常分享C/C++相关的知识 1621

【open judge】【程设】魔兽世界三开战!

#程设 魔兽世界三---开战!--------原以为会很容易ac,没想到写了好久,看来自己的水平还是亟待提高啊!有几个比较有趣的点:1. typeid(#include&lt;typeinfo&gt;)还是比较好用的,特别是本题当战士为wolf,iceman, dragon, ninja时有特殊技能,那么用typeid判断一下就很方便了。2. 对于这种输出很复杂的问题,往往通过使用文件的输入输出再...

weixin_40841416的博客 6073

保姆级教程:用ArcGIS Pro搞定云南30米分辨率DEM地形图(附数据下载与配色方案)

本文提供了一份详细的ArcGIS Pro教程,指导用户如何制作云南30米分辨率DEM地形图。从数据下载、预处理到镶嵌与质量控制,再到地形分析与可视化,全流程覆盖云南复杂地形的处理要点。特别包含数据下载链接、配色方案及常见问题解决方案,适合地理信息分析新手和专业人士。

weixin_30467199的博客 309

【C语言初阶】 递归函数实例讲解

如果需要我们求第n个斐波那契额数,我们就只需要知道n-1和n-2,知道n-1只需知道n-2和n-3,知道n-2只需知道n-3和n-4...... ......;上面蓝色的线就是递推的过程,把1234一层层剥离,红色的线就是回归的过程,一步一步进行打印。红色线为递推过程,蓝色线为回归过程。两段代码对比后发现,递归代码量明显减少,下来我们来讲一下上面代码是如何实现的,博主借用了一个大牛的图给大家讲解一下。我们发现要求一个数就得知道它前两个数,如果这个数太大,就像一棵倒着得数,程2得n次方增长,所以不考虑溢出,

m0_71731682的博客 2303

【Coze】在Coze平台使用源码创建工作流

Coze平台提供低代码工作流搭建功能,支持通过图形化界面快速构建自动化任务流程。用户可通过资源库创建工作流,导入JSON配置生成节点结构,连接起始节点并配置输入/输出字段(需定义数据类型)。平台提供试运行功能验证流程执行,支持可视化调试与发布上线。该方案适用于快速部署标准化业务逻辑,实现端到端的自动化处理。

Mr数据杨 2430

【C语言】递归实战,通过几个例子带你深入走进递归算法

打印数据每一位,汉诺塔,青蛙跳台阶三个实战例子带你深入走进递归算法

君兮_的博客 2942

开篇词:学习系统分析师的好处?核心考点有哪些?

系统分析师备考指南 系统分析师是IT行业的高级专业人才,具备系统分析与设计能力,能指导开发团队工作。学习系统分析师不仅能获得职业晋升的"黄金跳板",还能全面提升技术架构思维和业务理解能力。 核心价值: 职业发展:晋升管理岗位的硬性要求,突破职业天花板 能力提升:构建T型知识结构,培养架构思维和软技能 市场竞争力:成为"业务+技术"桥梁,获得国家级专业认证 考试内容: 计算机基础知识(硬件、操作系统、网络等) 系统分析专业知识(软件工程、架构设计等) 进阶知识(企业信息

数据知道的博客 5940

[DevExpress]GridControl拖拽行记录排序

DevExpress的GridControl拖拽行记录排序需求效果代码 需求 现在用户对按钮点击排序不满意了, 希望拖拽排序。 重载GridControl控件,对MouseMove、MouseDown、MouseUp事件修改一下。 效果 代码 using System; using System.Drawing; using System.Windows.Forms; using xiaoid.forms; using System.Data; using System.Collections.Gener

德仔 1561

C语言--函数递归

早上好,下午好,晚上好早上好,下午好,晚上好1、什么是递归?

pzn2506的博客 2222

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1569

一、算法基础+递归算法+查找算法

文章目录一、算法的重要性二、算法 一、算法的重要性 算法工程师 锻炼代码思维,更高效写代码 应聘面试(笔试/机试) 二、算法

厚积而薄发 1063

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

算法基础—递归(一)

递归(一) 递归的基本概念 ▲一个函数调用其自身,就是递归 ●求n!的递归函数 #include <iostream> using namespace std; int Factorial(int n) { if (n == 0) return 1; else return n * Factorial(n - 1); } int main() { cout << Factorial(3) << endl; return 0; } 结果:6 递归和普通函

qq_53064310的博客 366

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python递归顺序查找算法_一、算法基础+递归算法+查找算法

一、算法的重要性算法工程师锻炼代码思维,更高效写代码应聘面试(笔试/机试)二、算法(Algorithm)概念:一种设计过程,解决问题的办法。Niklaus Wirth:“程序=数据结构+算法”算法需要有输入和输出 1.时间复杂度1.1引入&问题分析显然是第一个运行快! 类⽐⽣活中的⼀些事件,估计时间:眨⼀下眼 =》一瞬间⼝算“29+68” =》几秒烧⼀壶⽔ =》几分钟睡⼀觉 =》 ...

weixin_32093689的博客 467

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

AI开发 - 算法基础 递归 的概念和入门(一) 递归算法的常见应用 PYTHON

在编程中,我们常常会遇到一个概念:递归。递归是一个函数调用自身来解决问题的过程。你可以把它看作是“自我重复”的方法,用来分解复杂问题。1. 举个例子:想象你在一个楼梯上,每个台阶都有一个编号。如果你站在某个台阶上,要想知道距离地面多少个台阶,你可以做两件事:这个过程会一直重复下去,直到你到达楼梯的最底部,显然最底部的台阶距离地面是0。这就是递归的一个典型应用:每个步骤都依赖于自己前一个步骤的结果。递归的逻辑图 比如,计算阶乘(n!)就是一个递归的例子。阶乘的定义是:也就是说,n的阶乘等于n乘以(n-1)的阶

minstbe的博客 1395

算法(一)基础算法之递归、二分、前缀和

递归 + 分治 + 前缀和 + 二分

释怀°Believe的博客 351

《算法基础:打开算法之门》一2.4 递归

本节书摘来自华章出版社《算法基础:打开算法之门》一书中的第2章,第2.4节,作者 [美]托马斯 H 科尔曼(Thomas H Cormen),更多章节内容可以访问云栖社区“华章计算机”公众号查看 2.4 递归 利用递归技术,能将一个问题转化为同一个样子问题的求解过程。这是我最喜欢的经典的递归例子:计算n!(“n的阶乘”),它被定义为如下,对于一个非负数...

weixin_33711647的博客 186

数学基础:一、排列算法(递归)

排列采用递归的方式进行,算法如下: public class Lesson7_2 { /** * @param rest-目前未排列的数据,has-保存已经排列的数据及其顺序 * @return void * @Description: 使用函数的递归(嵌套)调用,找出所有可能的排列顺序 */ public static void permu...

Carson的专栏 422

算法实例一 算法问题求解基础--欧几里得递归算法和递归算法

一、实例名称:算法问题求解基础 二、实例目的 练习以下算法 1.欧几里得递归算法 2.欧几里得迭代算法 3.连续整数检测算法 4.递归算法 三、实例内容 第一部分 欧几里得算法求最大公约数 问题: 1. 计算:34931与 75236 的最大公约数:   1 #include&lt;iostream.h&gt; 2 3 //1.欧几里得递归算法 4 v...

weixin_34326429的博客 257

算法基础(二):递归(一)

慕课:程序设计与算法(二)算法基础 郭玮老师课程的学习笔记递归:函数自己调用自己本身递归跟普通函数调用都是函数的调用,只是他的一个不同在于,每次函数执行时都会在递归调用的地方暂停并开始下一次函数调用,直到最后一次进行完毕,又开始往回继续执行函数,即堆栈的形式,这样造成了一个理解的复杂点,但是一旦你弄明白递归的过程以及问题求解时递归的使用,你就会发现递归是个非常好用的形式,可以帮助我们求解问题。例题...

宴夜小丑的博客 254

算法基础(c++)-递归和回溯(一)

递归是一种函数调用自身的编程技巧,常用于解决可以分解为相同子问题的问题。回溯是一种通过尝试所有可能的解决方案来找到问题的解的算法,通常使用递归实现。在实际应用中,递归和回溯可以帮助我们解决许多复杂的问题,如组合问题、排列问题、路径搜索问题等。

lwj0722的博客 433

程序设计与算法基础---递归(一)

Table of Contents 概念 递归的实现方式 递归的作用 汉诺塔问题 OpenJudge题目: 2的幂次方表示 概念 递归(英语:recursion)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。[2]绝大多数编程语言支持函数的自调用,在这些语言中函数可以通...

Techblog of HaoWANG 766

算法基础学习笔记-2-递归(一)

2.递归(一) 递归的基本概念:一个函数调用其自身 递归的作用: 1.代替多重循环 2.解决本来就是用递归形式定义的问题 3.将问题分解为规模更小的子问题进行求解 2.1求阶乘 略 递归和普通函数一样是通过栈实现的 2.2汉诺塔 古代有一个梵塔,塔内有三个座A、B、C , A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中, 3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步

weixin_43809624的博客 248

【ACwing】一、基础算法:1.2 递归枚举(组合型)

93. 递归实现组合型枚举 用一个动态数组记录被选中的数,若这些数的个数>m、这些数的总数+所有剩余数的个数<m表示当前的选择不满足条件(相当于剪枝函数),所以要回溯。 #include <iostream> #include <bits/stdc++.h> using namespace std; int n,m; vector<int> x; //标记当前是否被选择过 void dfs(int current) { if(x.size()>

qq_46126258的博客 819
上一篇: 注册表从入门到精通
下一篇: 算法--背包问题(3)
liufei_learning
博客等级 码龄17年 821粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值