阶乘的一般递归
int factorial(int n){
if(n<=1) return 1;
return (n*factorial(n-1));
}
阶乘的尾递归
int factorial_tail(int n,int res){
if(n<=1) return res;
return factorial_tail(n-1,n*res);
}
阶乘的迭代形式
int factorial_loop(int n){
int r=1;
for(int i=1;i<=n;i++){
r=r*i;
return r;
}
斐波那契数列递归
斐波那契数列的一般递归
int fibonacci(int n){
if(n<=3)
return 1;
else{
return fibonacci(n-1)+fibonacci(n-2);
}
}
斐波那契数列的尾递归
int fibonacci_tail(int n,int acc1,int acc2){
if(n<2)
return acc1;
else
return fibonacci(n-1,acc2,acc1+acc2);
}
}
斐波那契数列的循环递归
int fibonacci_loop(int n){
int a=0;
int b=1;
if(n==1)
return 1;
if(n==2)
return 1;
for(int i=3;i<=n;i++){
int temp=a+b;
a=b;
b=temp;
}
return b;
}
来源:CSDN
作者:奇跡の山
链接:https://blog.csdn.net/qq_35812205/article/details/103946119