剑指offer之面试题9菲波那切数列

来源:互联网 发布:山东临沂知历代书法家 编辑:程序博客网 时间:2024/06/18 16:15

问题描述

写一个函数,输入n,求菲波那切数列的第n项。

菲波那切数列定义:

f(n)=0,n=0

f(n)=1,n=1

f(n)=f(n-1)+f(n-2),n>1

实现代码如下:

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>int main(int argc, char *argv[]){int n0=1,n1=1;int N=rand()%100;if(N==1 || N ==0){printf("%d",n0);return 0;}int i;for(i=2;i<N+1;i++){int record =n0+n1;n0=n1;n1=record;}printf("%d",n1);return 0;}

上面的算法时间复杂度是:O(n)。

如果使用递归调用计算的话,时间复杂度是O(2^n)。

参考资料
剑指offer

备注
转载请注明出处:http://blog.csdn.net/wsyw126/article/details/51367228
作者:WSYW126

0 0