可以使用递归方法来求阶乘,递归可以将问题划分为多个小问题,然后用相同的方法解决它们,最后将它们的答案组合在一起。下面是Java代码示例:
public class Factorial {
public static void main(String[] args) {
int num = 5;
int result = factorial(num);
System.out.println(num + "! = " + result);
}
public static int factorial(int num) {
if(num == 0 || num == 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
}
-
第一条示例解释:
-
num
变量初始化为 5。 - 调用
factorial
方法,传入num
作为参数。 - 如果
num
等于 0 或 1,则返回 1。 - 否则,递归地调用
factorial(num - 1)
,将结果与num
相乘。 -
最终返回
factorial(num)
的值。 -
第二条示例解释:
-
num
变量初始化为 6。 - 调用
factorial
方法,传入num
作为参数。 - 如果
num
等于 0 或 1,则返回 1。 - 否则,递归地调用
factorial(num - 1)
,将结果与num
相乘。 - 然后递归调用
factorial(4)
、factorial(3)
、factorial(2)
和factorial(1)
。 - 当
factorial(1)
被调用时,num
等于 1,直接返回 1,结束递归。 - 最终返回
factorial(num)
的值,即6 * 5 * 4 * 3 * 2 * 1
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java如何用递归方法求阶乘 - Python技术站