java - 简单的递归阶乘函数

标签 java recursion

我正在用 java 测试很多选项,所以我想在 java 中做一个简单的递归函数。

我使用控制台执行程序,它接收一个参数,但当我尝试使用任何应该大于 1 的参数进行递归时,它总是显示 0。

public class rec{
    public static void main (String[] args) {
        int h = 0;
        int numero = Integer.parseInt(args[0]);
        int factor = 0;

        if ( numero == 0 || numero == 1){
            System.out.println(1);
        } else {
            int xpi = factorial(numero-1);
            System.out.println(factor);
        }
    }

    public static int factorial (int n){
        System.out.println("lol");
        if(n==0) {
            return 0;
        } else{ 
            return n* (n-1);
        }
    }
}

最佳答案

看看你的这些代码行:

int xpi = factorial(numero-1);
System.out.println(factor);

您将函数的结果放入xpi 变量,然后打印factor 变量。打印 xpi 应该可以。

System.out.println(xpi);

关于java - 简单的递归阶乘函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095807/

相关文章:

Java jbdc 出现错误 No 适用于 jdbc 的驱动程序 :mysql://ortal-pc\SQLEXPRESS

java - 如何使用spring DAO保存外键实体

java - 使用 jax-rs 客户端解决 osgi 类加载问题

java - 版本冲突,当前版本 [2] 与提供的版本 [1] 不同

java - 将 time4j Duration<IsoUnit> 从 P365D 转换为 P1Y 等

javascript - 为什么我的阶乘函数返回 NaN?

c# - 在递归中防止 StackOverflow 的优雅方法

python - 选择键来跟踪递归调用中已经运行的函数

language-agnostic - 规划问题的递归解决方案的最佳方法是什么?

c++ - 递归函数错误Dev-C++