java学习笔记(八) -- 递归

什么是递归(recursion)

1、一个过程或者函数,在其说明中,有直接或间接调用自身的一种方法

2、递归是将一个复杂的问题,变成一个简单类似的问题。

3、用有限的语句定义对象无限集合。

4、递归的关键是递归出口

public class RecursionTest {

    public static void main (String[] args) {

        System.out.println(recursion(5));
        int n = 10;
        System.out.println("Month is " + n + " Rabbits is " + rabbit(n));

        for (int i = 101; i <= 200; i++) {

            if (sqt(i,i) != 0) {

                System.out.println(i);
            }
        }
    }

    public static int recursion(int n) {

        //
        if (n == 0 || n == 1) {
            return n;
        } else {
            //
            return n*recursion(n-1);
        }
    }

    public static int rabbit(int n){

        if (n == 1|| n == 2){

            return 1;
        } else {

            return rabbit(n-1)+rabbit(n-2);
        }
    }

    public static int sqt(int n, int i) {

        if ( i == 0) {

            return n;
        } else if ((n % i == 0 && i > 1 && i != n)) {

            return 0;
        } else {

            return sqt(n, i-1);
        }
    }
}
结果

120
Month is 10 Rabbits is 55
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
补充

1、斐波那契数列

  兔子生兔子

2、德罗斯特效应

德罗斯特效应(Droste effect)是递归的一种视觉形式,是指一张图片的某个部分与整张图片相同,如此产生无限循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值