【Java成王之路】第五篇:Java SE(方法递归)

}

}

下面会通过简单的例题让大家更加深入的了解递归

三、递归的使用

========

例题:递归方式求n的阶乘

画图分析:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

实现代码 :

public class TestDemo {

public static int fac(int n){
    if(n == 1) {
        return 1;
    }
    int tmp = n * fac(n - 1);
    return tmp;
}
public static void main(String[] args) {
    System.out.println(fac(5));
}

}

代码画图讲解:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

例题:求n的和

画图分析

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

实现代码:

第一种写法:

public class TestDemo {

public static int sumAdd(int n){
    if(n == 1) {
        return 1;
    }
    int tmp = n + sumAdd(n - 1);
    return tmp;
}
public static void main(String[] args) {
    System.out.println(sumAdd(3));
}

}

第二种写法:

public class TestDemo {

public static int sumAdd(int n){
    if(n == 1) {
        return 1;
    }
    return n + sumAdd(n -1);
}
public static void main(String[] args) {
    System.out.println(sumAdd(3));
}

}

例题:递归实现按照顺序打印每一位的数字

画图分析:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

实现代码:

public class TestDemo {

public static void print(int n){
    if(n < 10){
        System.out.print(n+" ");
    }else{
        print(n/10);
        System.out.print(n%10+" ");
    }
}
public static void main(String[] args) {
    print(1234);
}

}

例题:写一个递归方法,输入一个非负整数,返回组成它的数字之和。例如:输入1729,则应该返回1+7+2+9

实现代码:

public class TestDemo {

public static int sumEveryone(int n){
    if(n < 10){
       return n;
    }else{
        return n%10 + sumEveryone(n/10);
    }
}
public static void main(String[] args) {
    System.out.println(sumEveryone(7910));
}

}

例题:求第n个斐波那契数是几

画图分析:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

实现代码:

第一种方法:递归

public class TestDemo {

public static int fib(int n){
    if(n == 1 || n == 2){
        return 1;
    }else{
        return fib(n-2)+fib(n-1);
    }
}
public static void main(String[] args) {
    System.out.println(fib(5));
}

第二种方法:叫做循环(迭代)实现

public static int fib2(int n){
    if(n == 1 || n==2){
        return 1;
    }
        int f1 = 1;
        int f2 = 1;
        int f3 = 0;
        for (int i = 3; i < n; i++) {
            f3 = f1+f2;
            f1 = f2;
            f2 = f3;

总结

至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:

  1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
  2. 项目经历:只写明星项目,描述遵循 STAR 法则;
  3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;

以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:

  1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
  2. 项目经历:只写明星项目,描述遵循 STAR 法则;
  3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;

以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频

[外链图片转存中…(img-Yn772rRA-1714509172345)]

[外链图片转存中…(img-m9pCgOjW-1714509172345)]

[外链图片转存中…(img-F4oOTfMj-1714509172346)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值