java中递归

本文介绍了Java中递归的定义,即方法自身调用自己,包括直接递归和间接递归。给出计算1 - n之间和的递归代码示例及执行流程图解。强调递归要有结束条件,次数也不能过多,否则会栈内存溢出,还提及斐波那契数列这一递归经典题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 定义 :

方法本身自己调用自己。

  • 递归的必要条件

1:递归的结束条件

2:方法体

示例代码:

public void method(){
    if(xxx)
    return ; 
   
    //在当前方法内调用自己 
    method();
}

递归分为两种,直接递归和间接递归。

直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

  1. 递归的代码演示,计算1-n之间的和,使用递归完成
public class DiGuiDemo {
public static void main(String[] args) {
    //计算1~num的和,使用递归完成
    int n = 5;
    int sum = getSum(n);
    System.out.println(sum);
}
public static int getSum(int n) {
    if(n == 1){
        return 1;
    }
   return n + getSum(n-1);
    }
}
  1. 代码执行流程图解

 

注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

         在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

递归经典题:

斐波那契数列 :

该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
 

int fib(int N) {
    if (N == 1 || N == 2) return 1;
    return fib(N - 1) + fib(N - 2);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

benboerdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值