递归函数有三点要求:

1,递归的终止点,即递归函数的出口
2,不断的递归调用自身
3,递归函数主体内容,即递归函数需要做的事情
ps:3一般可以放在2的前面或者后面,一般1放最前面。另外,2和3可以根据不同的需要合并,比如,有时候递归函数的主体就是返回调用下层函数所得到的结果。
void fun(int n){ if(n<=0) return; //1 这是递归的终点,即出口 fun(n-1); //2、递归函数自身的调用 cout< 函数递归调用的定义:函数直接或间接的调用自身叫函数的递归调用。 采用递归方法来解决问题时,必须符合以下两个条件: (1)、可以把要解决的问题转化为一个规模较小的新问题,而这个新问题的解决方法仍与原来的解决方法相同。 即函数的自我调用 (2)、必定要有一个明确的结束递归的条件。 简单来说,就是一个函数直接或间接调用自身的一种方法。通常递归可以将一个复杂的大型问题层层转化为一个与原问题相似的规模较小的问题来求解。它的核心思想是把大事化小。 递归就好比查英文字典,当查找第一个词时你发现这个词的解释中有一个单词你看不懂,于是你开始查找第二个单词,当查第二个单词的时候你发现这个单词的解释中依然有你看不懂的单词,于是你开始了第三次查找…直到有一个单词的解释你全部都能看懂,那么递归结束,然后开始后退,逐个明白之前查过的每一个单词,最后知道了第一个单词的意思。 递归函数是一种在函数内部调用自身的编程技巧。它的原理是将一个大问题分解成更小的同类型问题,并通过递归调用解决这些小问题,最终得到大问题的解。在递归函数中,必须定义一个终止条件,当满足该条件时,递归终止并返回结果。 递归函数的原理包含两个核心概念:基线条件和递归条件。基线条件是指在问题足够小以致可以直接求解时,递归停止并返回结果。递归条件是指将问题分解为更小的同类型子问题,通过递归调用解决这些子问题。递归函数通过不断地调用自身,将问题规模不断地缩小,并最终解决整个问题。 递归函数在解决一些涉及到多层嵌套的问题时非常有效。通过递归,可以简化问题的复杂度,提高编程效率。但是,在使用递归函数时,一定要小心陷入无限递归的陷阱,必须确保在递归条件中,问题的规模能够逐渐趋近于基线条件,以避免无限递归导致程序崩溃。