java main递归_java算法之递归算法

递归其实在程序当中我们可以理解为自己调用自己,使用递归做相关计算都是具有一定规律的逻辑,下一步计算都需要用到前一步或几步计算结果,比如说我们在做连加、连乘及阶乘、遍历文件夹等,递归还必须要满足两个条件:

1. 在每一次调用自己时,必须是要接近于结果。

2. 必须在有限次计算中有一个终止的处理。

如不遵循以上条件往往会让递归进入死循环,从而只有递没有归。

下面我们就在Java中使用递归打印出99乘法表。

递归图解

871c897c533f78aa80f3c5e725edc1b5.png

嵌套for循环实现99乘法表

for (int i = 1; i<= 9; i++) {for (int j = 1; j<= i; j++) {System.out.print(j + "*" + i + "=" + (i*j));System.out.print(" ");}System.out.println();}

递归打印99乘法表代码实现

public static void main(String[] args) {print(9);}private static void print(int j) {if (j > 0) {print(j - 1);for (int i = 1; i <= j; i++) {System.out.print(i + "*" + j + "=" + (i*j));System.out.print(" ");}System.out.println();}}

代码执行结果:

bc757a4dcfa7a5e01bc6ee54be558de1.png

如上我们可以看出来完全满足前面说到的两个条件,我们可以看下for循环其实最终出来的结果就是一个回归的时候才执行的,看打印出来的结果我们可以看出是从最后一次调用print方法执行for循环打印的结果,在一层一层传递参数中我们没有打印任何东西,直到参数从开始的9减少到0的时候最后一次方法调用结束,然后从后往前依次回归执行for循环打印乘法口诀,最终呈现出乘法口诀表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值