目录
方法的递归调用
一、方法的递归调用
(一)定义
(二)举例
1.计算n!数
二、注意
方法的递归调用
一、方法的递归调用
(一)定义
方法递归调用就是自己调用自己。
(二)举例
1.计算n!数
思路:
用递归的方法,求正整数n的阶乘n!
n!按递归定义如下:
0! = 1;
n! = n * (n-1)!; n>0
(1)代码
package csdn.every.day;
public class Day31digui {
//程序入口
public static void main(String[] args) {
System.out.println(factor(5)); //调用方法
System.out.println(Long.MAX_VALUE);//查long类型长度,long类型到21!就越界了,所以到1-20。
}
//静态方法,实现递归调用
public static long factor (int n) {
if (n == 0) {
return 1;
} else {
return factor(n - 1) * n;
}
}
}
//注释2
//n=5时,调用return factor(n - 1) * n; 语句
// n=5时,执行factor(4)*5
//又因为factor(4)调用,即n=4,执行factor(3)*4
//直到n=1时,factor(1)调用,执行时factor(0)*1,
// n=0时,调用到 return 1;语句。
//即是:1*1*2*3*4*5。
//注释1
//n=5时,调用return factor(n - 1) * n; 语句
// n=5时,执行factor(4)*5
//又因为factor(4)调用,执行factor(3)*4
//又因为factor(3)调用,执行factor(2)*3,
//又因为factor(2)调用,执行factor(1)*2
//最后factor(1)调用,执行时factor(0)*1,
// n=0时,调用到 return 1;语句。
//回头看即是:1*1*2*3*4*5。——自己调用自己
(2)结果
二、注意
递归的基本思想是将复杂问题简单化。