方法一:迭代法
public static int iteration
(int n
) {
int ret
= 1;
for (int i
=1;i
<= n
;i
++){
ret
*= i
;
}
return ret
;
}
方法二:递归法
首递法
public static int headRecursion
(int n
) {
return 1==n
?1:n
*headRecursion(n
-1);
}
尾递法
public static int tailRecursion
(int n
) {
return factorialHelper(1,n
);
}
private static int factorialHelper
(int acc
, int n
) {
return 1==n
?acc
:factorialHelper(acc
*n
,n
-1);
}
方法三:函数流
public static int stream
(int n
) {
return IntStream
.rangeClosed(1,n
).reduce(1,(a
,b
)->a
*b
);
}
转载请注明原文地址: https://mac.8miu.com/read-493004.html