关于递归,百度百科是这样说的:程序调用自身的编程技巧称为递归(recursion)。简单来说就是,方法:“我调用我自己”。其实递归和循环很像,都是重复地去做某件事,循环可以写成递归,但递归不一定能写成循环,因为终止递归的条件需要找到,是一个充分不必要条件。
递归的条件
1.递归的终止条件(也就是什么时候达到某一个条件可以结束了);
2.得到递归的表达式。
下面举几个例子。
使用递归做求和运算
有一个经典题目,1+2+3+...+100
的和是多少,记得小学的时候学到高斯用了巧妙地方法惊呆了他的数学老师,我还感叹为什么我没有想到,而是一个一个去加。当然了,交给计算机去做的时候,就可以一个一个去加,使用for循环,一个一个加,加到100,时间复杂度为O(n),代码如下:
int sum = 0;
for (int i =