核心
- 菲波那切数列 : 公式 : F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)
具体实现
- 递归实现
int Digit(int n){
if (n == 1 || n == 2){//终止条件
return 1;
}
return Digit(n - 1) + Digit(n - 2);//递
}
- 非递归实现
int UnDigit(int n){
int a = 1;
int b = 1;
int c = 1;
int i = 0;
for (i = 3; i <= n; i++){
c = a + b;
a = c;
c = a;
}
return c;
}
int main () {
int n = 4;
int ret1 = Digit(n);
int ret2 = UnDigit(n);
printf("%d\n", ret1);
printf("%d\n", ret2);
return 0;
}