洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解
题目链接:https://www.luogu.com.cn/problem/P1720
题目描述:
给你一个公式
,求对应的 \(F_n\) 。
解题思路:
首先不难想象这是一个斐波那契数列,我们可以通过找规律等方式来求解得到答案。
但是这里想说一下的还是这个公式的推导过程。
斐波那契数列的数学公式是通过 数列特征方程 来进行求解的。
首先,对于斐波那契数列,我们知道 \(f_{n+2} = f_{n+1} + f_{n}\)
我们不妨设等比数列的公比为 \(q\) ,则
\]
约去 \(f_n\) 得:
\]
得:\(q_1 = \frac{1 + \sqrt{5}}{2},q_2 = \frac{1 - \sqrt{5}}{2}\)
所以 \(f_n\) 是 \(q_1^n\) 和 \(q_2^n\) 的一个线性组合,
我们假设 \(f_n = A \times q_1^n + B \times q_2^n\) ,带入 \(f_1 = f_2 = 1\) ,得:
\]
在了解这个思想之后,我们还是按照递推公式计算斐波那契数列数列比较方便。
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
long long f[50];
int n;
int main() {
cin >> n;
f[1] = f[2] = 1;
for (int i = 3; i <= n; i ++) f[i] = f[i-1] + f[i-2];
cout << f[n] << ".00" << endl;
return 0;
}
洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解的更多相关文章
- 洛谷P1720 月落乌啼算钱 题解
题目传送门 初看题目,好难.再看一次,探索规律,发现这就是有名的斐波那契数列. F[i]=f[i-1]+f[i-2] SO 代码很简单,貌似要开long long,又貌似不用开. #include&l ...
- 洛谷——P1720 月落乌啼算钱
题目背景 (本道题目木有以藏歌曲……不用猜了……) <爱与愁的故事第一弹·heartache>最终章. 吃完pizza,月落乌啼知道超出自己的预算了.为了不在爱与愁大神面前献丑,只好还是硬 ...
- 洛谷P1720 月落乌啼算钱
目背景 (本道题目木有以藏歌曲……不用猜了……) <爱与愁的故事第一弹·heartache>最终章. 吃完pizza,月落乌啼知道超出自己的预算了.为了不在爱与愁大神面前献丑,只好还是硬着 ...
- DP思想在斐波那契数列递归求解中的应用
斐波那契数列:1, 1, 2, 3, 5, 8, 13,...,即 f(n) = f(n-1) + f(n-2). 求第n个数的值. 方法一:迭代 public static int iterativ ...
- 关于Haskell计算斐波那契数列的思考
背景 众所周知,Haskell语言是一门函数式编程语言.函数式编程语言的一大特点就是数值和对象都是不可变的,而这与经常需要对状态目前的值进行修改的动态规划算法似乎有些"格格不入", ...
- erlang的斐波那契数列
[递归和循环] 题目: 大家都知道斐波那契数列,现在要求输入一个整数N,请输出斐波那契数列的第N项,以及前N项. 如:N <=39 下面是斐波那契数列的实现: -module(feibo). - ...
- 洛谷P1962 斐波那契数列题解
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请 ...
- 洛谷P1962 斐波那契数列【矩阵运算】
洛谷P1962 斐波那契数列[矩阵运算] 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) ( ...
- 斐波那契数列的通项公式x+洛谷P2626x
#include<cstdio> #include<iostream> #include<cmath> using namespace std; int main( ...
随机推荐
- 重置Mysql自增列的开始序号
ALTER TABLE TableName AUTO_INCREMENT = 5; 代表重新从5开始(包括5)
- hdu 1532 Drainage Ditches(最大流模板题)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- get_magic_quotes_gpc() PHP转义的真正含义
如何正确的理解PHP转 义是一个初学者比较困扰的问题.我们今天为大家简要的讲述了PHP转义的具体含义,希望有所帮助.PHP转义一直困扰着我, 今天认真的看了一下PHP手册, 终于解决了. 在PHP中默 ...
- rdlc报表部署
1)在D盘创建目录ReportViewer 2)打开运行界面,运行如下的执行 copy C:\Windows\assembly\gac_msil\Microsoft.ReportViewer.Comm ...
- Pytorch 多 GPU 并行处理机制
Pytorch 的多 GPU 处理接口是 torch.nn.DataParallel(module, device_ids),其中 module 参数是所要执行的模型,而 device_ids 则是指 ...
- 2019-8-15-win10-edge-打开闪退问题
title author date CreateTime categories win10 edge 打开闪退问题 lindexi 2019-08-15 08:53:22 +0800 2019-8-1 ...
- java 多线程安全问题的解决方法
三种方法: 同步代码块: synchronized(obj) { //obj表示同步监视器,是同一个同步对象 /**..... TODO SOMETHING */ } 同步方法 格式: 在方法上加 ...
- Laravel基本使用、生成Cookie、返回视图、JSON/JSONP、文件下载及重定向
https://yq.aliyun.com/ziliao/23889 1.Response篇 1.1 基本响应 最基本的HTTP响应只需在路由闭包或控制器动作中返回一个简单字符串即可,但是具体业务逻辑 ...
- Codeforces Round #178 (Div. 2)
A. Shaass and Oskols 模拟. B. Shaass and Bookshelf 二分厚度. 对于厚度相同的书本,宽度竖着放显然更优. 宽度只有两种,所以枚举其中一种的个数,另一种的个 ...
- VMware 注册码
VMware 12 Pro 永久许可证激活密钥 5A02H-AU243-TZJ49-GTC7K-3C61NVF5XA-FNDDJ-085GZ-4NXZ9-N20E6UC5MR-8NE16-H81WY- ...