斐波那契数列 讲一下c语言中递归函数的使用方法?
浏览量:1921
时间:2021-03-11 10:34:26
作者:admin
讲一下c语言中递归函数的使用方法?
递归函数有三个要求:
1,递归的终点,即递归函数的出口
2,连续递归调用自身
3,递归函数的主要内容,即递归函数需要做什么
PS:3可以放在2的前面或后面,通常1放在前面。另外,2和3可以根据不同的需要进行组合。例如,有时递归函数的主体是返回调用底层函数的结果。
具体示例如下:
void fun(int n){if(n<=0)return//1这是递归的终点,即退出fun(n-1)//2,递归函数本身调用cout<< n<<endl//3递归函数的主要内容}
2,3合并case
int fun(int n){if(n<=0)return 0 return fun(n-1)fun(n-2)//2循环和递归的本质区别在于内存的使用。递归是方法本身。随着递归次数的增加,内存消耗也在增加。当我们编写代码时,内存是一个非常重要的部分。我们尽量减少内存的消耗,以免浪费系统资源。循环占用的内存非常小,每个循环都会释放之前分配的内存,但是很多递归函数不能通过循环来实现,所以我们必须考虑要实现的函数。如果函数不能用非递归的方法来完成,我们就不会刻意修改它们。
C语言中的循环与函数的递归调用有何区别?
不能有返回值,返回值只是函数输出的一个方法
直接或间接调用自己的函数是递归函数,否则是非递归函数。例如:unsigned fun(unsigned x){if(x==1 | | x==0)return 1 return x*fun(x-1)}的函数有自己的语句fun(x-1),因此它是一个递归函数。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。