采用特征方程方法求解以下递归方程:
![](https://img-blog.csdnimg.cn/img_convert/1adad9da385815b4c9f58ec774641def.png)
![](https://img-blog.csdnimg.cn/img_convert/ba2090551e1eaacb07a1153336f65b55.png)
分析求斐波那契f(n)的时间复杂度。
时间复杂度分析:
求解F(n),必须先计算F(n-1)和F(n-2),计算F(n-1)和F(n-2),又必须先计算F(n-3)和F(n-4)。以此类推,直至必须先计算F(1)和F(0),然后逆推得到F(n-1)和F(n-2)的结果,从而得到F(n)要计算很多重复的值,在时间上造成了很大的浪费,算法的时间复杂度随着N的增大呈现指数增长,时间的复杂度为O(2^n),即2的n次方。
3.对于一个采用字符数组存放的字符串str,设计一个递归算法求其字符个数(长度)。
#include <stdio.h>
#include <string.h>
int Length(char m[]){
if(m[0]=='\0')
return 0;
else
return 1+Length(m+1);
}
int main(){
char c[]=" i i i i";
printf("c= i i i i的字符串长度为:%d",Length(c));
return 0;
}
![](https://img-blog.csdnimg.cn/img_convert/d6fecbc3bb5c24b0f428b68cf5571f19.png)