目录
1.递归
1.1求阶乘:
1.2.斐波那契数
1.3. 求幂
1.递归
在C语言中,递归是一种函数调用自身的方法,用来解决一些具有重复性质的问题。例如,计算阶乘、斐波那契数列等问题都可以通过递归实现。
递归在书写的时候,有2个必要条件:
1.递归存在限制条件,当满足这个限制条件的时候,递归便不再继续。
2. 每次递归调用之后 越来越接近这个限制条件。
在这里有个非常重要的分治思想,我概括一下就是从前到后,再从后到前,当然这里我概括的比较笼统,只可意会不可言传,实现递归的本质就是函数调用本身,并且要有明确的限制条件。
下面是一些简单的代码案例:
1.1求阶乘:
传入参数为10,输出为:3628800
#include <stdio.h>
int RecusiveFunctiom(int n) {if (n==0){return 1;}else{return n * RecusiveFunctiom(n - 1);}}
int main() {int a = 10;printf("%d\n", RecusiveFunctiom(a));return 0;
}
1.2.斐波那契数
斐波那契数列是一个递增的数列,定义如下:F(n) = F(n-1) + F(n-2)
,其中 F(0) = 0
和 F(1) = 1.
#include <stdio.h>
int SHULIE(int n) {if (n==0){return 0;}else if (n == 1){return 1;}else{return SHULIE(n - 1) + (n - 2);}
}
int main() {int a = 10;printf("%d\n", SHULIE(a));return 0;
}
1.3. 求幂
计算 x
的 n
次幂.:
#include <stdio.h>
int QIUMI(int x, int n) {if (n==0){return 1;}else{return x * QIUMI(x,n - 1);}
}
int main() {int x = 3;int a = 10;printf("%d\n", QIUMI(3,10));return 0;
}
在这里还是简单解释一下:函数参数为3,10,传入QIUMI(int x,int n),其计算过程是:
3*QIUMI(3,10)
QIUMI(3,10)=3*QIUMI(3,9);
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,省略
QIUMI(3,1)=3*QIUMI(3,0);
QIUMI(3,0)=1;
最后累乘一下就可以了。