C++知识点总结(21):递推算法

文章详细介绍了递推和逆推算法在斐波那契数列、蜜蜂路线、杨辉三角等数学问题中的应用,以及猴子分桃和相关习题的解法。同时提到了C++编程语言中的异常处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、斐波那契数列

1. 基础知识

斐波那契数列是由 < 1 , 1 , 2 , 3 , 5 , 8 , . . . > <1, 1, 2, 3, 5, 8, ...> <1,1,2,3,5,8,...> 构成的一串无线序列,其基础项是前两项 1 1 1 1 1 1,从 3 3 3 开始求解方法为 f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n) = f(n-1) + f(n-2) f(n)=f(n1)+f(n2)

2. 审题

题目描述

斐波那契数列是这样的数列:数列的第一项和第二项都为 1 1 1,接下来的每一项都等于前面两项之和。给出一个整数 n n n,输出斐波那契数列前n项。

输入描述

一行,包含一个整数 n n n

输出描述

一行,斐波那契数列前 n n n 项,两个数字之间以一个空格隔开

样例1

输入

4

输出

1 1 2 3

提示

1 ≤ n ≤ 20 1 \le n \le 20 1n20

3. 参考答案

#include <iostream>
using namespace std;

long long n;
long long f[25] = {
   0, 1, 1};

int main()
{
   
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
   
	    if (i <= 2)
	    {
   
	        cout << 1 << " ";
	        continue;
	    }
	    f[i] = f[i-1] + f[i-2];
	    cout << f[i] << " ";
	}
	return 0;
}

二、P2437 蜜蜂路线

1. 审题

题目描述

一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 M M M 开始爬到蜂房 N N N M < N M<N M<N,有多少种爬行路线?例如从蜂房 1 1 1 爬到蜂房 3 3 3,有两种方法,分别是 1 − 3 1-3 13 1 − 2 − 3 1-2-3 123

输入描述

一行,包含两个正整数 M M M N N N,表示蜜蜂爬行的起点和终点。

输出描述

一个整数,表示爬行路线有多少种

样例1

输入

1 14

输出

377

提示

1 ≤ M < N ≤ 20 1 \le M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值