mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 0509.斐波那契数.md C语言版本
This commit is contained in:
@ -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号位为0,1号为为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);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user