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);
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值