使用IntelliJ中的递归方法的因子

时间:2016-07-14 19:57:14

标签: java recursion

我正在尝试解决基本练习(计算阶乘),但我遇到了错误。

我在IntelliJ工作

代码:

public class calculation {

    public long factorial(long number) {
        if (number <= 0) {
            return 1;
        }
        else
            return number * factorial(number - 1);

    }
}

    public static void main(String[] args) {

        for(int counter = 0; counter <= 21; counter++)
        {
            System.out.printf("%d! = %d", counter, factorial(counter));
        }
    }
}

我收到错误:

  

错误:(18,30)java:class,interface或enum expected - 4个实例

我也尝试使用扫描仪从键盘读取一个数字,然后调用该函数,但我得到了相同的结果。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你有1个额外的结束括号,因此你的void main()不在课堂上。修复此问题并尝试再次运行代码。下面的代码运行正常。

` 公共课计算{

public static long factorial(long number) {
    if (number <= 0) {
        return 1;
    }
    else
        return number * factorial(number - 1);

}

public static void main(String[] args) {

    for(int counter = 0; counter <= 21; counter++)
    {
        System.out.printf("%d! = %d", counter, factorial(counter));
    }
}

}