递推算法(c++)

news2024/9/23 13:19:46

递推可以说是递归反过来的一种算法,递归是从后往前倒着算,递推是从前往后正着算。

统计每个月兔子的总数
题目描述
有一对兔子,从出生后第3个月起每个月都生一对兔子,一对小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问第n个月(n<=50)的兔子总数为多少对?
输入
输入1个整数n,表示第几个月
输出
第n个月兔子的总数量有多少对?
样例
输入复制
9
输出复制
34
#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[100];
	a[0] = 1;
	a[1] = 1;
	int n;
	cin>>n;
	cout<<1<<endl<<1<<endl;
	for(int i = 2;i<n;i++)
	{
		a[i] = a[i-1]+a[i-2];
		cout<<a[i]<<endl;
	}
	return 0;
}

猴子吃桃子
题目描述
猴子吃桃子问题:猴子第一天摘下若干个桃子,当即吃了一半还不过瘾,又多吃了一个;第二天又
将剩下的桃子吃掉一半又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到了第十天
想再吃时,见只剩下一个桃子,求第一天共摘了多少个桃子?
输入
输出
一个整数,第一天共有多少个桃子
#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[20];
	a[10] = 1;
	for(int i = 9;i>=1;i--)
	{
		a[i] = (a[i+1]+1)*2;
	}
	cout<<a[1];
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[110],b;
	a[1] = 1;
	int n;
	cin>>n;
	b = 1;
	for(int i = 2;i<=n;i++)
	{
		a[i] = a[i-1]+i;
		b = b+a[i];
	}
	cout<<b;
	return 0;
}

Pell数列
题目描述
有一种数列,它的前10项的值分别为:1 2 5 12 29 70 169 408 985 2378,这个数列被称
为Pell数列,请问该数列的第n项的值是多少?(n<=1000)
输入
一个整数n。
输出
第n项的值。
样例
输入复制
10
输出复制
2378
青少年编程
#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[1010];
	int n;
	cin>>n;
	a[1] = 1;
	a[2] = 2;
	for(int i = 3;i<=n;i++)
	{
		a[i] = a[i-1]*2+a[i-2];
	}
	cout<<a[n];
	return 0;
}

上台阶
描述
楼梯有n(30 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一
步上3阶,编程计算共有多少种不同的走法。
输入
输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。
输出
每一行输出对应一行输入的结果,即为走法的数目。
样例输入
1
2
3
4
0
样例输出
1
2
4
7
#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[1010];
	int b[50];
	int n;
	for(int i = 0;true;i++)
	{
		int t;
		cin>>t;
		if(t==0)
		{
			n = i;
			break;
		}
		b[i] = t;
	}
	a[1] = 1;
	a[2] = 2;
	a[3] = 4;
	for(int i = 4;i<=30;i++)
	{
		a[i] = a[i-1]+a[i-2]+a[i-3];
	}
	cout<<endl;
	for(int i = 1;i<=n;i++)
	{
		cout<<a[i]<<endl;
	}
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[110];
	int m,n;
	cin>>m>>n;
	n = n-m+1;
	a[1] = 1;
	a[2] = 1;
	for(int i = 3;i<=n;i++)
	{
		a[i] = a[i-1]+a[i-2];
	}
	cout<<a[n];
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[100];
	a[1] = 1;
	a[2] = 2;
	a[3] = 4;
	int n;
	cin>>n;
	for(int i = 4;i<=n;i++)
	{
		a[i] = a[i-1]+a[i-2]+a[i-3];
	}
	cout<<a[n];
	return 0;
}

(此题有不用递推的其他简便方法)

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int m,n;
	cin>>m>>n;
	if((m*n)%2==0)
	{
		cout<<m*n/2;
	}
	else
	{
		cout<<(m*n-1)/2;
	}
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long a[10010];
	a[1] = 2;
	a[2] = 4;
	a[3] = 8;
	int n;
	cin>>n;
	for(int i = 4;i<=n;i++)
	{
		a[i] = a[i-1]+a[i-2]+a[i-3];
	}
	cout<<a[n];
	return 0;
}

菲波那契数列(2)
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都
等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数对1000取
模的结果是多少。
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正
整数a(1 <= a <= 1000000)。
输出
n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数
对1000取模得到的结果。
样例输入
4
5
2
19
1
样例输出
5
1
181
1
#include <bits/stdc++.h>
using namespace std;
long long a[1000010];
int main()
{
	int b[10000];
	int n;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>b[i];
	}
	a[1] = 1;
	a[2] = 1;
	for(int i = 3;i<=1000000;i++)
	{
		a[i] = (a[i-1]+a[i-2])%1000;
	}
	cout<<endl;
	for(int i = 0;i<n;i++)
	{
		cout<<a[b[i]]<<endl;
	}
	return 0;
}

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

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

相关文章

为什么HashMap的键值可以为null,而ConcurrentHashMap不行?

写在开头 今天在写《HashMap很美好&#xff0c;但线程不安全怎么办&#xff1f;ConcurrentHashMap告诉你答案&#xff01;》这篇文章的时候&#xff0c;漏了一个知识点&#xff0c;知道晚上吃饭的时候才凸显想到&#xff0c;关于ConcurrentHashMap在存储Key与Value的时候&…

ARM架构基础内容

文章目录 前言一、AAPCS二、中断调用过程三、FreeRTOS中任务切换的实质总结 前言 一、AAPCS AAPCS&#xff0c;全称为ARM Architecture Procedure Call Standard&#xff0c;是ARM架构下的过程调用标准。这个标准定义了在ARM架构中函数调用和返回的约定&#xff0c;以确保不同…

文件底层的深入理解(1)

一、文件学习的简单铺垫 我们都知道&#xff0c;文件等于文件内容加上文件属性。访问文件之前都得先通过进程才能打开相应的文件&#xff0c;一个进程可以打开多个文件。修改文件&#xff0c;都是通过执行代码的方式完成修改。要对文件进行修改&#xff08;或其他操作&#xff…

Java 数组(详细)

目录 一、数组的概述 1. 数组的理解&#xff1a; 2. 数组相关的概念&#xff1a; 3. 数组的特点&#xff1a; 4. 数组的分类&#xff1a; 5.数据结构&#xff1a; 二、一维数组 1. 一维数组的声明与初始化 2. 一维数组元素的引用&#xff1a; 3. 数组的属性&#xff1…

微信小程序,h5端自适应登陆方式

微信小程序端只显示登陆(获取opid),h5端显示通过账户密码登陆 例如: 通过下面的变量控制: const isWeixin ref(false); // #ifdef MP-WEIXIN isWeixin.value true; // #endif

力扣hot100题解(python版44-47题)

44、二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;…

FHE 的应用场景

参考文献&#xff1a; [MSM22] Marcolla C, Sucasas V, Manzano M, et al. Survey on fully homomorphic encryption, theory, and applications[J]. Proceedings of the IEEE, 2022, 110(10): 1572-1609. 文章目录 FHEFirst GenerationSecond GenerationThird GenerationFour…

编码规则转换

思考&#xff1a; 如何将一个机内码转换为区内码&#xff1f; 只要将机内码减去 A0A0 就可以啦 如果只让我们用加法器来解决呢&#xff1f; 注意我们的数据占用了 32 位&#xff0c;如果想用补码进行减法运算的话&#xff0c;符号位怎么办&#xff1f;&#xff1f;&#xf…

2199. 骑士共存问题(最小割,最大权独立集,二分图)

活动 - AcWing 在一个 n∗n 个方格的国际象棋棋盘上&#xff0c;马&#xff08;骑士&#xff09;可以攻击的棋盘方格如图所示。 棋盘上某些方格设置了障碍&#xff0c;骑士不得进入。 对于给定的 n∗n个方格的国际象棋棋盘和障碍标志&#xff0c;计算棋盘上最多可以放置多少个…

2024年腾讯云优惠券_代金券_云服务器折扣券免费领取链接

腾讯云优惠代金券领取入口共三个渠道&#xff0c;腾讯云新用户和老用户均可领取8888元代金券&#xff0c;可用于云服务器等产品购买、续费和升级使用&#xff0c;阿腾云atengyun.com整理腾讯云优惠券&#xff08;代金券&#xff09;领取入口、代金券查询、优惠券兑换码使用方法…

UE5中实现后处理深度描边

后处理深度描边可以通过取得边缘深度变化大的区域进行描边&#xff0c;一方面可以用来做角色的等距内描边&#xff0c;避免了菲尼尔边缘光不整齐的问题&#xff0c;另一方面可以结合场景扫描等特效使用&#xff0c;达到更丰富的效果&#xff1a; 后来解决了开启TAA十字线和锯齿…

【go从入门到精通】go包,内置类型和初始化顺序

大家好&#xff0c;这是我给大家准备的新的一期专栏&#xff0c;专门讲golang&#xff0c;从入门到精通各种框架和中间件&#xff0c;工具类库&#xff0c;希望对go有兴趣的同学可以订阅此专栏。 go基础 。 Go文件名&#xff1a; 所有的go源码都是以 ".go" 结尾&…

latex宏包pythontex使用简明手册

文章目录 1.背景2. 基本示例2.1 hello world2.1.1 代码与输出结果2.1.2 说明2.1.3 如何编译使用了pythontex宏包的Latex文档2.1.4 如何既输出python代码又输出代码执行结果 2.2 在Latex中嵌入python变量的值2.2.1 示例代码与文档输出2.2.2 说明 2.3 在latex文档中输出控制台会话…

2.29号的复盘开始商城项目的规格如何设施的方式

第五次设计方式 我本来想的是&#xff0c;按照对于的组方式解拆分&#xff0c;通过分组处理的内存不同查询对应的手机上 出现问就是这里 对于的组相应规格相应里面有对于的价格&#xff0c;价格也就相同&#xff0c;无法进行区分 查询出来的对应的结果 还是没有办法具体拆分…

现货大宗商品发售平台搭建须知

在搭建现货大宗商品发售平台时&#xff0c;需要考虑以下关键因素&#xff1a; 目标市场分析&#xff1a;首先要明确你的平台将服务于哪些大宗商品市场&#xff0c;如农产品、金属、能源等。了解这些市场的特点、参与者、交易规则等&#xff0c;有助于你设计出更符合市场需求的…

解析/区分MOS管的三个引脚G、S、D(NMOS管和PMOS管)

MOS管的三个引脚分别是Gate&#xff08;栅极&#xff09;、Source&#xff08;源极&#xff09;和Drain&#xff08;漏极&#xff09;。以下是详细介绍&#xff1a; Gate&#xff08;栅极&#xff09;。这是控制MOS管开关的关键引脚&#xff0c;用于控制电流的流通。Source&…

pikachu验证XXE漏洞

先随便输入一个内容查看 接下来用bp抓包看下参数 有个xml参数&#xff0c;而且Content-Type: application/x-www-form-urlencoded&#xff0c;我们传入url编码后的xml内容试一下 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE foo [<!EN…

社区店选址人流量标准:如何确保充足的顾客流量

在选择社区店的位置时&#xff0c;确保充足的顾客流量是至关重要的。 作为一名开鲜奶吧5年的创业者&#xff0c;我将分享一些关于社区店选址人流量标准的关键要点&#xff0c;帮助你找到最适合的店铺位置。 1、研究人口统计学数据 了解潜在顾客的人口特征是选址的基础。通过研…

Unity3D学习之Lua热更新解决方案(二)XLua

文章目录 1 XLua概述2 xLua导入和AB包相关准备3 C#调用Lua3.1 Lua解析器3.2 文件加载重定向3.3 Lua解析器管理器3.3.1 重定向AB包内的Lua3.3.2 获得_G大表 3.4 全局变量的获取3.5 全局函数的获取3.5.1 无参无返回3.5.2 有参有返回3.5.3 多返回值3.5.4 变长参数 3.6 List和Dicti…

C 嵌入式系统设计模式 18:临界区模式

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之四…