递归问题(c++)

递归设计思路


数列递归 : 如果一个数列的项与项之间存在关联性,那么可以使用递归实现 ;
原理 : 如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用 ;
注意: 一般起始项是不需要求解的,是已知条件

这就是一个典型的递归问题。

假如有一个小和尚,3岁上山,老和尚每年给小和尚讲一遍,一直讲到18岁。

用代码实现这个问题。

#include<iostream>
#include<iomanip>
using namespace std;
void func();
int age = 3;
int main()
{func();return 0;
}
void func()
{if(age == 18) return;cout<<"从前有座山,山里有祖庙,庙里有个老和尚在给小和尚讲故事,讲的什么呢?"<<endl;age++;func();
}

递归求解问题的过程 :


第一步 : 找出规律
第二步: 函数调用自己求解前面的项
第三步: 交代起始项,让递归能够停止

目录

递归设计思路

递归求解问题的过程 

数数小木块

题目描述

统计每个月兔子的总数

题目描述

求s的值

题目描述

数列求和

题目描述

数数小木块

题目描述


在墙角堆放着一堆完全相同的正方体小木块,如下图所示:
因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。


输入
只有一个整数 n ,表示这堆小木块的层数,已知 1≤n≤100 。
输出
只有一个整数,表示这堆小木块的总数量。

#include<iostream>
#include<iomanip>
using namespace std;
int func(int x);
int main()
{int n;cin>>n;int sum =  0;for(int i = 1;i<=n;i++){sum = sum + func(i);}cout<<sum;return 0;
}
int func(int x)
{if(x==1) return 1;return x + func(x-1);
}


统计每个月兔子的总数

题目描述


有一对兔子,从出生后第3个月起每个月都生一对兔子,一对
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问第n个月(n<=50)的兔子总数为多少对?
输入
输入1个整数n,表示第几个月
输出
第n个月兔子的总数量有多少对?                      
样例
输入复制
9
输出复制
34

#include<iostream>
#include<iomanip>
using namespace std;
int func(int x);
int main()
{int n;cin>>n;cout<<func(n);return 0;
}
int func(int x)
{if(x==1) return 3;return func(x-1) + func(x-2);
}

求s的值

题目描述


求S=1+2+4+7+11+16…的值刚好大于等于 5000时S 的值。
输入

输出
一行,一个整数

#include<iostream>
#include<iomanip>
using namespace std;
int func(int x);
int main()
{int n;cin>>n;cout<<func(n);return 0;
}
int func(int x)
{if(x==1) return 1;if(x==2) return 2;int he = func(x-1) + func(x-2);return he;
}

数列求和

题目描述


有一数列如下: 1 2 4 7 11 16 22 …… 试求该数列前N 项之和。
输入
一个整数N ( 0<N<1000 )。
输出
一个整数。
输入复制
6
输出复制
41

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{int n;cin>>n;int cnt = 1;for(int i = 1;i<=n;i++){cnt = cnt+i+2;}cout<<cnt;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI Alignment: A Comprehensive Survey---摘要、简介

题目 人工智能对齐&#xff1a;全面调查 摘要 人工智能对齐旨在使人工智能系统的行为符合人类的意图和价值观。随着人工智能系统的能力不断增强&#xff0c;错位的风险也在不断增加。为了提供对齐领域的全面和最新概述&#xff0c;在本调查中&#xff0c;我们深入研究了对齐的…

Linux中vi和vim的区别详解

文章目录 Linux中vi和vim的区别详解一、引言二、vi和vim的起源与发展三、功能和特性1、语法高亮2、显示行号3、编辑模式4、可视化界面5、功能扩展6、插件支持 四、使用示例1、启动编辑器2、基本操作 五、总结 Linux中vi和vim的区别详解 一、引言 在Linux系统中&#xff0c;vi和…

【工具变量】上市公司企业经营困境指数数据(Zscore、Oscore、RLPM、Merton DD)2000-2021年

一、资料范围&#xff1a;包括Zscore、Oscore、RLPM、Merton DD&#xff0c;经营困境说明如下&#xff1a;&#xff08;1&#xff09;Zscore&#xff1a;以2.67和1.81作为临界值计算样本得分所处的范围。Zscore>2.67 为财务状况良好&#xff0c;发生破产的可能性较小。Zscor…

5G中的ATG Band

Air to Ground Networks for NR是R18 NR引入的。ATG很多部分和NTN类似中的内容类似。比较明显不同的是&#xff0c;NTN的RF内容有TS 38.101-5单独去讲&#xff0c;而ATG则会和地面网络共用某些band&#xff0c;这部分在38.101-1中有描述。 所以会存在ATG与地面网络之间的相邻信…

spring cloud contract http实例

微服务很多时&#xff0c;服务之前相互调用&#xff0c;接口参数的一致性要变得很难维护。 spring cloud contract 提供了测试接口一致性的方法。 一 项目配置 plugins {id "groovy"id "org.springframework.cloud.contract" version "4.0.5"i…

JIS-CTF: VulnUpload靶场渗透

JIS-CTF: VulnUpload来自 <https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/> 1,将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 靶机IP地址192.168.23.162&#xff0c;攻击机IP地址192.168.23.140…

数据分析思维(一):业务指标(数据分析并非只是简单三板斧)

个人认为&#xff0c;数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python&#xff0c;更重要的是数据分析思维。没有数据分析思维和业务知识&#xff0c;就算拿到一堆数据&#xff0c;也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#x…

系统思考—战略决策

别用管理上的勤奋&#xff0c;来掩盖经营上的懒惰。 日本一家物业公司&#xff0c;因经营不善&#xff0c;面临生死存亡的危机。老板为了扭转局面&#xff0c;采取了很多管理手段——提高员工积极性&#xff0c;推行业绩与绩效挂钩&#xff0c;实施各种考核制度。然而&#xf…

选择WordPress和Shopify:搭建对谷歌SEO友好的网站

在建设网站时&#xff0c;不仅要考虑它的美观和功能性&#xff0c;还要关注它是否对谷歌SEO友好。如果你希望网站能够获得更好的搜索排名&#xff0c;WordPress和Shopify是两个值得推荐的建站平台。 WordPress作为最流行的内容管理系统&#xff0c;其强大的灵活性和丰富的插件…

【研发经验】工作流和规则引擎的应用与场景

工作流引擎和规则引擎是两种常见的软件技术&#xff0c;可以被应用于各种场景中&#xff0c; 例如&#xff1a; 业务流程自动化&#xff1a;工作流引擎可以用于自动化和管理各种业务流程&#xff0c;例如审批流程&#xff0c;订单处理流程&#xff0c;客户服务流程等。它可以定…

html自带的input年月日(date) /时间(datetime-local)/星期(week)/月份(month)/时间(time)控件

年月日期控件 type"date" <input type"date" id"StartDate" valueDateTime.Now.ToString("yyyy-MM-dd") /> //设置值 $("#StartDate").val("2024-12-12"); //获取值 var StartDate$("#StartDate&quo…

【量化中的复权数据详解】

【复权计算方法】 股票会时不时的发生现金分红、送股等一系列股本变动&#xff0c;这会造成股价的非正常变化&#xff0c;导致我们不能直接通过股价来计算股票的涨跌幅。例如一个股票是10元&#xff0c;当他10送10的时候&#xff0c;它的价格会变成5元&#xff0c;但是我们并不…

【WRF安装】WRF编译错误总结1:HDF5库包安装

目录 1 HDF5库包安装有误&#xff1a;HDF5 not set in environment. Will configure WRF for use without.HDF5的重新编译 错误原因1&#xff1a;提示 overflow 错误1. 检查系统是否缺少依赖库或工具2. 检查和更新编译器版本3. 检查 ./configure 报错信息4. 检查系统环境变量5.…

生成式 AI 在个人层面的认知与应用

随着生成式人工智能技术的不断成熟和创新&#xff0c;其在各行各业的应用正在逐步拓展&#xff0c;展现出巨大的潜力和价值。我国政策对生成式 AI的支持和鼓励&#xff0c;不仅是对其潜力的认可&#xff0c;更是对其未来在推动社会进步和经济发展中作用的肯定。然而&#xff0c…

泛型编程--

auto自动推导数据类型 函数模板 定义和调用 函数模板具体化 函数模板通用版本之外的一个特殊版本 函数模板 具体化函数 &#xff0c;它们的声明和定义都可以分开写。 声明 定义 函数模板写变量 模板参数缺省 类成员函数作为函数模板 类构造函数是函数模板 函数模板重载 函数模…

Qt编写RK3588视频播放器/支持RKMPP硬解/支持各种视音频文件和视频流/海康大华视频监控

一、前言 用ffmpeg做硬解码开发&#xff0c;参考自带的示例hw_decode.c即可&#xff0c;里面提供了通用的dxva2/d3d11va/vaapi这种系统层面封装的硬解码&#xff0c;也就是无需区分用的何种显卡&#xff0c;操作系统自动调度&#xff0c;基本上满足了各种场景的需要&#xff0…

迎接全新的 Kotlin 支持 – K2 模式:基本信息

K2 模式有什么作用&#xff1f; K2 模式是 IntelliJ IDEA 中 Kotlin 支持的新实现&#xff0c;它可以提高 IDE 的稳定性&#xff0c;同时也会为支持未来 Kotlin 语言功能奠定基础。 K2 模式与 Kotlin K2 编译器有什么区别&#xff1f; K2 编译器负责编译 Kotlin 语言 2.0 或…

设计模式の建造者适配器桥接模式

文章目录 前言一、建造者模式二、适配器模式2.1、对象适配器2.2、接口适配器 三、桥接模式 前言 本篇是关于设计模式中建造者模式、适配器模式&#xff08;3种&#xff09;、以及桥接模式的笔记。 一、建造者模式 建造者模式是属于创建型设计模式&#xff0c;通过一步步构建一个…

智能引导小车充电系统设计(论文+源码)

1总体方案设计 在16*16点阵LED字符显示器的设计中&#xff0c;系统总体框架如图2.4所示&#xff0c;包括单片机主控模复位电路模块、晶振电路模块、按键电路模块、LED点阵驱动电路模块&#xff0c;蓝牙模块等构成。系统功能实现主要是利用系统在软件程序编写过程中&#xff0c…

PCIe学习笔记

PCIE高速串行数据总线 当拿到一块板子 比如你要用到PCIE 首先要看这块板子的原理图 一般原理图写的是 PCI express 表示PCIE 以下是Netfpga为例下的PCIE插口元件原理图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/01dc604fbdc847e8998a978c83c7b2eb.png 一般主…