Java方法中的迭代和递归

迭代就是循环,可以这样简单的理解。

递归:可以理解为采用分治的方法,分而治之,大事化小,大的问题,化解成为一个小问题来解决。

递归的要求:
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);
 }
}

你可能感兴趣的:(Java方法中的迭代和递归)