标签:现在 static 等等 out ring void 方程式 ati 简化
一个数的阶乘
当这个
数 = 1
的时候,算式为:1 * (1 - 0) = 1
,所以1的阶乘就是1当这个
数 = 2
的时候,算式为:2! = 2 * 1 = 2 * (2 - 1) = 2
,所以2的阶乘就是前2个数为特殊情况
假设这个数为
n
n = 1
,n! = 1 * (1 - 0)
n = 2
,n! = 2 * (2 - 1)
n = 3
,n! = 3 * (3 - 1) * (3 - 2)
....等等等....
由此引发出递归的思想
public class Test {
pulic static void main(String[] args) {
System.out.println(5); // 120
}
public static int F(int n) {
// 首先来处理2个特殊情况
if (n == 1) {
// 如果 n 和 1 相等,直接返回结果为1
return 1;
}
if (n == 2) {
// 如果n 和 2 相等,直接返回结果为2
return 2;
}
if (n > 2) {
return n * F(n - 1);
}
}
}
上述还可以简化为
public class Test {
pulic static void main(String[] args) {
System.out.println(5); // 120
}
public static int F(int n) {
// 首先来处理2个特殊情况
if (n == 1) {
// 如果 n 和 1 相等,直接返回结果为1
return 1;
}
if (n >= 2) {
return n * F(n - 1);
}
}
}
5代入的执行流程
n = 5
,第一个判断不执行,n
现在是>=
2的,就执行return n * F(n - 1);
,这就相当于小时候的数学的方程式代入感一样,5代入,5 * F(4)
, 这里的F(4)
又是调用了一遍这个函数,F(4) = 4 * F(3)
,依次下去,就会最终变成5 * 4 * 3 * 2 * 1
;
标签:现在 static 等等 out ring void 方程式 ati 简化
原文地址:https://www.cnblogs.com/wxvirus/p/12913904.html