那么为了这期讲解递归的博客,博主特意去把pta比较简单的浙大题目部分的递归刷了一遍,要是觉得博主讲的不错的小伙伴可以关注博主哦!博主会持续更新的🐶
小伙伴们可以选择性学习哦!
注:代码在算法实例,主要讲解在最后的总结。
目录↓
1.递归思想
程序调用自身的编程技巧称为递归(recursion),简单来说就是编程技巧。我们在写一个函数时,对这个函数不断的调用其本身,就是一种递归。递归在求很多数列,乃至写不同的算法时十分方便(忽略其时间复杂度和空间复杂度),递归,递归,顾名思义:递和归。
引入图 (取自:卓象程序员)
到这里其实都是废话。
2.算法实例
这里的代码皆为函数块,小伙伴们可放心使用,与主函数任意搭配😄
1.使用递归函数计算1到n之和
我们一般情况下会选择在主函数中使用for循环和while循环的方式去计算。但在函数引用中我们可以使用递归:
int sum( int n )
{
if(n<0)
return 0;
if(n==1)
return 1;
else
return n+sum(n-1);
}
2. 递归求阶乘和
这里我们为了方便使用两个函数。
double fact( int n )
{
if(n==1||n==0)
return 1;
else
return (double)n*fact(n