C 练习实例11

C 练习实例11

使用公式法(本题不推荐该解法,仅作扩展):

#include

#include // 编译时需要链接该库:-lm

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)

相关内容