gpt4 book ai didi

Java计算运行时错误(使用阶乘计算欧拉数)

转载 作者:行者123 更新时间:2023-12-01 06:54:12 24 4
gpt4 key购买 nike

我正在尝试计算欧拉数。如欧拉数e = 1 + (1/1!) + (1/2!) + (1/3!) + ..... = 2.718281828....其中n!等于 n 的阶乘。首先我写了一个类Factorial.class计算阶乘:

文件Factorial.java

public class Factorial
{
//Methods
//If statement to abolish negative integer parameter have to be filled
public static int factorial(int number)
{
if (number == 0 || number == 1)
{
return 1;
} else
{
int m = number;
for (int i = number - 1; i > 1; i--)
{
m = m * i;
}
return m;
}
}
}

该类与测试类配合良好 FactorialTest.class

文件FactorialTest.java

public class FactorialTest
{
public static void main(String[] args)
{
System.out.println(Factorial.factorial(10));
}
}

该类打印 3628800

后来我创建了一个EulersNumber.class打印 e 的值:

文件EulersNumber.java

public class EulersNumber
{
public static void main(String[] args)
{
double e = 1;
for (int i = 1; i > 10000; i++)
{
double j = (double)(Factorial.factorial(i));
double k = 1 / j;
e = e + k;
}
System.out.println("e = " + e); //e = 1.0
}
}

e 的值应该是 2.718281828....但是这个类打印 e = 1.0

我哪里出错了?

最佳答案

for (int i = 1; i > 10000; i++)

上面的行有问题。该循环仅在 i > 10000 时执行。但是 i 从 1 开始。所以它永远不会执行。

顺便说一句,您将无法使用 int 来表示 10000 的阶乘,这是一个非常大的数字,远远超出了 int 的限制(即2^32 - 1)。请改用 BigInteger。

关于Java计算运行时错误(使用阶乘计算欧拉数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com