递归算法:打印1-10(四种方法,递归学习)

1 篇文章 0 订阅
1 篇文章 0 订阅

循环改递归

  • ·改为递归的关键是发现逻辑“相似性"
  • 不要忘记递归“出口”
```java

```java
//java实现
public class Print1To10 {
  //采用循环
  static void F(int a, int b) {
    for (int i = a; i <= b; i++) {
      System.out.println(i);
    }
  }
  //采用递归
  static void P(int begin, int end) {
    if (begin < end) {  //递归的出口
      P(begin, end - 1);//除去我们做的事情,剩下的给别人做
    }
    System.out.println(end);//我们做的事情
  }
  //采用递归
  static void P1(int begin,int end) {
    if (begin>end) {  //递归的出口
      return;
    }
    System.out.println(begin);//我们做的事情
    P1(begin+1,end);//除去我们做的事情,剩下的给别人做
  }
  //采用递归
  static void P2(int n) {
    if (n>1) {  //递归的出口
      P2(n-1);//除去我们做的事情,剩下的给别人做
    }
    System.out.println(n);//我们做的事情

  }
  public static void main(String[] args) {
    F(1, 10);
    P(1,10);
    P1(1, 10);
    P2(10);
  }
}

在这里插入图片描述

所谓的递归就是函数自己调用自己而已, 循环本质上也是一种递归。
使用循环和递归, 在理论上是具有相同的计算能力的。 但是,面对不同的实际问题, 选择哪一种方式,是另一个问题。 两者各有利弊。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星谐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值