使用公式法(本题不推荐该解法,仅作扩展):
#include
#include
int fibonacii(int n)
{
if(n == 0) return 1; // 公式法解出的斐波纳契数列第一项为1/sqrt(5),四舍五入后为0
return round((pow(sqrt(5)+1, n) - pow(sqrt(5)-1, n))/sqrt(5)/pow(2, n));
}
int main()
{
int i;
for(i=1; i<=40; i++)
{
printf("%12d", fibonacii(i));
if(i%4 == 0) printf("\n");
}
return 0;
}
+ 使用公式法可直接获取斐波纳契数列的特定项,而不用从第一项开始逐一求解
+ 当遇到需要求解斐波纳契数列的特定项时可使用该法
+ 参考链接:[斐波纳契数列的通项公式及证明](https://www.cnblogs.com/lzxzy-blog/p/12961585.html)
大宅院里的三表哥 大宅院里的三表哥
gul***r@outlook.com
3年前 (2022-09-10)