显示联机编译器中运行时错误的java代码

显示联机编译器中运行时错误的java代码,java,Java,为什么在联机编译器中显示运行时错误? 谁能给我解释一下。。。 这段代码在我的netbeans中运行良好,但在虚拟机上出现“运行时错误” 问题陈述: //** 即使这个世界充满了赝品,我仍然认为它是美好的 堆起药草和熏香,从它的前身的火焰和灰烬中复活——正如许多人所知,凤凰就是这样做的 凤凰的寿命相当长,每年转世一次!年。这里有一个!表示整数a的阶乘,即a! = 1. × 2. × ... × A.具体来说,0! = 一, Koyomi对此并不在意,但在他陷入另一场怪事之前,他对凤凰在b的时间跨度

为什么在联机编译器中显示运行时错误? 谁能给我解释一下。。。 这段代码在我的netbeans中运行良好,但在虚拟机上出现“运行时错误”

问题陈述:

//**

即使这个世界充满了赝品,我仍然认为它是美好的

堆起药草和熏香,从它的前身的火焰和灰烬中复活——正如许多人所知,凤凰就是这样做的

凤凰的寿命相当长,每年转世一次!年。这里有一个!表示整数a的阶乘,即a! = 1. × 2. × ... × A.具体来说,0! = 一,

Koyomi对此并不在意,但在他陷入另一场怪事之前,他对凤凰在b的时间跨度内转世的次数很感兴趣!年,就是。注意,当b ≥ a此值始终为整数

由于答案可能相当大,Koyomi只要知道答案的最后一位小数就足够了。你来这里是为了给Koyomi提供这些知识

输入 输入的第一行也是唯一一行包含两个空格分隔的整数a和b(0 ≤ A. ≤ B ≤ 1018)

输出 输出一行,其中包含一个十进制数字-Koyomi感兴趣的值的最后一位数字

例子 输入 2 4 输出 2. 输入 0 10 输出 0 输入 107 109 输出 2. 注 在第一个示例中,的最后一位是2

在第二个示例中,的最后一位是0

在第三个示例中,的最后一位是2

**//

提前谢谢。。。。 我在我的代码中找不到任何错误。。。有什么问题。。。。 用户输入:

输入

2 4

输出

二,

输入

0 10

输出

0

输入

107 109

输出

二,

获取“测试1上的运行时错误”


可能是因为堆栈溢出错误而失败。要避免这种情况,请使用尾部递归算法

public static BigInteger fact(BigInteger x) {
    return factHelper(x, BigInteger.ONE);
}

pivate static BigInteger factHelper(BigInteger x, BigInteger acc) {
    if (x.equals(BigInteger.ZERO))
        return acc;
    else
        return factHelper(x.subtract(BigInteger.ONE), acc.multiply(x));
}

用户输入为2 4输出2。在这个测试用例中给出了运行时错误,但是在我的java IDE中运行平稳,这是什么问题?它引发了什么运行时异常?请详细解释。发送测试及其结果错误。输入2 4输出2输入0 10输出0输入107 109输出2它给出了“测试1上的运行时错误”-测试用例2 4输出2以获取
a的最后数量/b
你只需要
a.mod(b)
,不带任何分区,试试
如果(a!>b!)答案=a.mod(b)else答案=b.mod(a)
不,这又是一个错误的答案,你确定吗?ans=事实(a);ans2=事实(b);如果(ans.compareTo(ans2)==1){System.out.println(ans.mod(ans2));}或者{System.out.println(ans2.mod(ans));}我不明白为什么它会显示运行时错误。。。。因为我的代码中没有错误…哦,我明白了。。。这是因为“包外营养”标题。。。虽然我在文本案例5:D上超过了时间限制
public static BigInteger fact(BigInteger x) {
    return factHelper(x, BigInteger.ONE);
}

pivate static BigInteger factHelper(BigInteger x, BigInteger acc) {
    if (x.equals(BigInteger.ZERO))
        return acc;
    else
        return factHelper(x.subtract(BigInteger.ONE), acc.multiply(x));
}