月落乌啼算钱(斐波那契数列)

题目背景

(本道题目木有隐藏歌曲……不用猜了……)

《爱与愁的故事第一弹· heartache》最终章。

吃完 pizza,月落乌啼知道超出自己的预算了。为了不在爱与愁大神面前献丑,只好还是硬着头皮去算钱……

题目描述

算完钱后,月落乌啼想着:“你坑我!”于是当爱与愁大神问多少钱时,月落乌啼说了一堆乱码。爱与愁大神说:“算了算了,我只问第 nn 样菜价格多少?”月落乌啼写出了:

Fn=(1+52)n(152)n5F_n=\dfrac{\left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n}{\sqrt{5}}

由于爱与愁大神学过编程,于是就用 11 分钟的时间求出了 FnF_n 的结果。月落乌啼为此大吃一惊。你能学学爱与愁大神求出 FnF_n 的值吗?

输入格式

一行一个自然数 nn

输出格式

只有 11 行一个实数 FnF_n,保留两位小数。

样例 #1

样例输入 #1

1
6

样例输出 #1

1
8.00

提示

对于所有数据:0n480 \leq n\leq 48

题解

法一

1
2
3
4
n = int(input())
g5 = 5**0.5
fn = ((((1 + g5) / 2) ** n) - (((1 - g5) / 2) ** n)) / g5
print("%.2f" % fn)

法二

由于题目给出提示了,斐波那契数列,直接写一个斐波那契数列就行了,实测也是这样的

题解解释

这段代码是用来计算斐波那契数列的第 n 个数字的近似值的。以下是代码的解释:

  1. n = int(input()): 用户输入一个整数 n,表示要计算斐波那契数列的第 n 个数字。

  2. g5 = 5**0.5: 这里定义了一个变量 g5,它是 5 的平方根,用于后面的计算。

  3. fn = ((((1 + g5) / 2) ** n) - (((1 - g5) / 2) ** n)) / g5: 这行代码计算了斐波那契数列的第 n 个数字的近似值。它使用了黄金比例和斐波那契数列的性质来进行计算。表达式中的部分是斐波那契数列的通项公式。

  4. print("%.2f" % fn): 最后,使用 print 函数将计算得到的近似值打印出来。"%.2f" 的格式化字符串表示将浮点数 fn 格式化为小数点后两位的浮点数,并打印出来。

知识点

小数保留几位的方法

1
print("%.2f" % math)

开根号的方法

1
a = b ** 0.5