迭代就是循环,可以这样简单的理解。
递归:可以理解为采用分治的方法,分而治之,大事化小,大的问题,化解成为一个小问题来解决。
递归的要求:
1.一个程序需要调用自己本身。
2.必须有趋近于终止的条件。(若是不给这个终止条件,栈将会溢出。每一个方法的调用时需要在栈上开辟内存的,而栈是有大小的。最终可能会把内存占满。)
递归的原理:函数的运行需要开辟栈帧,只需要运行一个函数,就需要在栈上开辟内存。
这就是一个典型的递归函数。
import java.util.Scanner;
public class TestLi {
public static int fac(int n) {
if (n == 1) {
return 1;//终止条件
}
return n*fac(n-1);//未达到终止条件时。每一次都调用自己
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int ret = fac(a);
System.out.println(ret);
}
}
本文深入探讨了递归与迭代的概念,解释了递归作为分治策略的应用,以及其必须具备的自我调用特性和终止条件。通过一个递归函数实例,展示了每次调用如何在栈上开辟内存,直至达到终止条件。
1万+

被折叠的 条评论
为什么被折叠?



