JAVA---递归的案例

来源:互联网 发布:淘宝胶带母卷 编辑:程序博客网 时间:2024/05/16 05:31

 

1. 阶乘的案例

package day04;

public class Recursion {

/**

* 降阶

* 5!=5*4!

* 4!=4*3!

* 3!=3*2!

* 2!=2*1!

* 1!=1;

*/

 

static int jieCheng( int n){ //假设n=1

if (n<=1){

return 1;

} else {

return n* jieCheng (n-1); //假设2

}

 

}

 

public static void main(String[] args) {

System. out .println( jieCheng (3));

}

}

2. 斐波那契数列

package day04;

public class RecursionDemo1 {

/**

* f(1)=0; 1

* f(2)=1;

* f(3)=1; - f(2)+f(1)

* f(4)=2;f(3)+f(2)

* fno=; f(n - 1)+f(n - 2);

*

*/

 

static int feiNa( int n){

if (n==1){

return 0;

} else if (n==2){

return 1;

} else {

return feiNa (n-1)+ feiNa (n-2);

}

}

 

public static void main(String[] args) {

System. out .println( feiNa (4));

}

}

3. 斐波那契数列 引发的兔子繁殖问题分析及实现

分析:

经过月数

0

1

2

3

4

5

6

7

8

9

10

11

12

幼仔 对数

1

0

1

1

2

3

5

8

13

21

34

55

89

成兔对数

0

1

1

2

3

5

8

13

21

34

55

89

144

总体对数

1

1

2

3

5

8

13

21

34

55

89

144

233

package day04;

import java.sql.Date;

public class RecursionDemo2 {

/**

* 幼崽 n代表月数

*

* @param n

* @return

*/

static int feiNa( int n) { // 月数

if (n == 0) {

return 1;

} else if (n == 1) {

return 0;

} else if (n == 2) {

return 1;

} else if (n == 3) {

return 1;

} else {

return feiNa (n - 1) + feiNa (n - 2);

}

}

/**

* 成崽 n代表月数

*

* @param n

* @return

*/

static int feiNas( int n) { // 月数

if (n == 0) {

return 0;

} else if (n == 1) {

return 1;

} else {

return feiNas (n - 1) + feiNas (n - 2);

}

}

/**

* 总数 n代表月数

*

* @param n

* @return

*/

static int feiNass( int n) { // 月数

if (n == 0) {

return 1;

} else if (n == 1) {

return 1;

} else {

return feiNass (n - 1) + feiNass (n - 2);

}

}

public static void main(String[] args) {

System. out .println( feiNa (12));

System. out .println( feiNas (12));

System. out .println( feiNass (12));

System. out .println( new Date (2, 11, 1) );

}

 

 

原创粉丝点击