算法之递归算法

递归是非常常见的一种算法, 也比较难以理解,简而言之,递归就是写了一个方法,方法中还调用了该方法,相当于自己调用自己,如果书写不当,就会有堆栈溢出的风险,无法跳出。

所以我们编写递归函数时,必须要告诉他何时停止递归,这就是基线条件,而递归条件就是指函数调用自己。

举个例子,如果要编写一个倒计时的函数

3 2 1 。。。。,也就是给一个输入,然后依次输出值并减一,直到为1的时候

这个时候我们可以用递归的方式来写,先理出递归的两个条件

基线条件:当入参小于等于0的时候返回

递归条件:入参不小于0的话,则自己调用自己,入参减一

package com.dlh.test.算法;

import java.util.Scanner;

public class 递归算法之倒计时 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        Count(num);//调用递归方法
    }
    private static void Count(int num) {
        if (num <= 0) {//递归基线条件
            return;
        }else {//递归条件
            System.out.print(num + " ");
            num--;
            Count(num);
            //递归调用
        }
    }
}

当输入为5的时候,可以看到,总共递归了五次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值