mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +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