洛谷 P1720: 月落乌啼算钱(斐波那契数列)思路 和 C++ 题解

洛谷 P1720: 月落乌啼算钱(斐波那契数列)

第 4 篇 CSDN!

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

这道题把斐波那契数列写在你脸上了,所以… 我们不用斐波那契数列,抛弃所有的递归和递推!

我们可以设 a = ( 1 + 5 2 ) n a=(\frac{1+\sqrt{5}}{2})^n a=(21+5 )n, b = ( 1 − 5 2 ) n b=(\frac{1-\sqrt{5}}{2})^n b=(215 )n,那么 F n = a − b 5 F_n=\frac{a-b}{\sqrt{5}} Fn=5 ab,还是非常好写的。

所以,上代码!

#include <bits/stdc++.h>
using namespace std;

int n;
int main() {
	cin >> n;
	long double a = pow((1 + sqrt(5)) / 2, n), b = pow((1 - sqrt(5)) / 2, n);
	printf("%.2Lf", (a - b) / sqrt(5));
}

声明一下:在 C 语言中,要想为 l o n g   d o u b l e long\ double long double 类型保留 2 2 2 位小数,就可以使用上面的输出语句,对应的 C++ 代码为:

#include <bits/stdc++.h>
using namespace std;

int main() {
	long double a = 3.1415926;
	int x = 3;
	cout << fixed << setprecision(x) << a;
}

其中 a a a 是要保留的数字, x x x 是要保留的位数,运行代码得到 3.141 3.141 3.141

总结:
p o w ( n , x ) pow(n,x) pow(n,x) n x n^x nx
s q r t ( x ) sqrt(x) sqrt(x) x \sqrt{x} x

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值