添加 0509.斐波那契数.md C语言版本

This commit is contained in:
Guanzhong Pan
2022-01-12 15:44:55 +00:00
parent d23629630b
commit 014dbf0f79

View File

@ -245,6 +245,38 @@ var fib = function(n) {
};
```
### C
动态规划:
```c
int fib(int n){
//当n <= 1时返回n
if(n <= 1)
return n;
//动态开辟一个int数组大小为n+1
int *dp = (int *)malloc(sizeof(int) * (n + 1));
//设置0号位为01号为为1
dp[0] = 0;
dp[1] = 1;
//从前向后遍历数组(i=2; i <= n; ++i),下标为n时的元素为dp[i-1] + dp[i-2]
int i;
for(i = 2; i <= n; ++i) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
```
递归实现:
```c
int fib(int n){
//若n小于等于1返回n
if(n <= 1)
return n;
//否则返回fib(n-1) + fib(n-2)
return fib(n-1) + fib(n-2);
}
```
-----------------------