您的位置:首页 > 编程语言 > Java开发

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

2014-09-16 13:21 260 查看
什么是递归(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)是递归的一种视觉形式,是指一张图片的某个部分与整张图片相同,如此产生无限循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: