【发布时间】:2020-11-19 04:29:57
【问题描述】:
我是递归新手,我发现了以下 Java 问题:
编写一个获取整数 n 的函数,并打印数字 1!,2!,3!,...,n!。
这是我所做的,我想知道这是否是最简单的解决方案(我不确定,因为我使用“for”循环来做到这一点)。
public static void Print(int n) {
if (n == 0) {
System.out.print("1");
} else {
int temp = 1;
for (int i = 1; i <= n, i++) {
temp = temp * i;
}
Print(n-1);
System.out.print(temp);
}
}
顺便说一句,前面的练习是使用递归编写一个获取整数 n 并返回 n! 的函数。你认为我需要在这里使用它并打印它而不是计算温度(n!)并打印它吗? 谢谢!
【问题讨论】:
-
您在发布的代码中有语法错误
-
@ButiriDan 谢谢,我修好了
-
对于这个函数,你需要使用 long 来代替。因子会导致快速溢出,因为增长速度如此之快。
-
这不是递归解决它的好方法
-
同时使用递归和for循环没有多大意义。您可以使用任一解决问题。