Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
e^x=1+;x+;x2/2+;x3/3+;x4/4<&书信电报;使用java方法将e转换为x电源_Java - Fatal编程技术网

e^x=1+;x+;x2/2+;x3/3+;x4/4<&书信电报;使用java方法将e转换为x电源

e^x=1+;x+;x2/2+;x3/3+;x4/4<&书信电报;使用java方法将e转换为x电源,java,Java,所以。你好,聪明人。我做错了什么?我就是想不出这个代码有什么问题。任何帮助我的人都得10分。 我正在尝试使用递归为e^x创建一个方法。使用e^x=1+x+x2/2!+x3/3!+x4/4!+方程式 public class tester { public static double power(double x, int n) { if (n == 0) { return 1; } else { return

所以。你好,聪明人。我做错了什么?我就是想不出这个代码有什么问题。任何帮助我的人都得10分。 我正在尝试使用递归为e^x创建一个方法。使用
e^x=1+x+x2/2!+x3/3!+x4/4!+方程式

public class tester {
    public static double power(double x, int n) {
        if (n == 0) {
            return 1;
        } else {
            return x * power(x, n - 1);
        }

    }

    public static int factorial(int n) {
        if (n == 0) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }

    public static double myexp(double x, int n) {
        if (n == 0) {
            return 1;
        } else {
            return (power(x, n) / factorial(n)) + myexp(x, n - 1);
        }
    }

    public static void main(String[] args) {
        System.out.println(myexp(x, n)); // unfortunately, increasing n value
                                            // makes it go infinite.
    }

}
所以x是e^x中的x,n是加上第n项后的总值。所以
例如,myexp(3,5)将是第五学期的e^3加起来。因此,n越高,e^3就越精确。

您的问题是在
阶乘方法中使用“int”数据类型。更具体地说,阶乘数很快变得巨大,而int数据类型太小。例如,如果您编写了以下代码:

public static void main(String[] args) {
    System.out.println(factorial(50));
}
输出为0,这显然是错误的,因此您的结果为
无穷大。只需将阶乘的返回类型从
int
更改为
double
,如下所示:

public static double factorial(int n)
然后,如果您尝试:

public static void main(String[] args) {
    System.out.println(myexp(1., 100));
}

您得到了
2.7182818284590455

您的问题是在
阶乘方法中使用了“int”数据类型。更具体地说,阶乘数很快变得巨大,而int数据类型太小。例如,如果您编写了以下代码:

public static void main(String[] args) {
    System.out.println(factorial(50));
}
输出为0,这显然是错误的,因此您的结果为
无穷大。只需将阶乘的返回类型从
int
更改为
double
,如下所示:

public static double factorial(int n)
然后,如果您尝试:

public static void main(String[] args) {
    System.out.println(myexp(1., 100));
}

您得到了
2.7182818284590455

您的问题是在
阶乘方法中使用了“int”数据类型。更具体地说,阶乘数很快变得巨大,而int数据类型太小。例如,如果您编写了以下代码:

public static void main(String[] args) {
    System.out.println(factorial(50));
}
输出为0,这显然是错误的,因此您的结果为
无穷大。只需将阶乘的返回类型从
int
更改为
double
,如下所示:

public static double factorial(int n)
然后,如果您尝试:

public static void main(String[] args) {
    System.out.println(myexp(1., 100));
}

您得到了
2.7182818284590455

您的问题是在
阶乘方法中使用了“int”数据类型。更具体地说,阶乘数很快变得巨大,而int数据类型太小。例如,如果您编写了以下代码:

public static void main(String[] args) {
    System.out.println(factorial(50));
}
输出为0,这显然是错误的,因此您的结果为
无穷大。只需将阶乘的返回类型从
int
更改为
double
,如下所示:

public static double factorial(int n)
然后,如果您尝试:

public static void main(String[] args) {
    System.out.println(myexp(1., 100));
}


你得到了
2.7182818284590455

“帮助我的人得10分”什么,你不打算接受答案?那我就帮不了你了。每一分多少美元?;)“寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。”问题中的代码不编译,所以不能用来重现所描述的问题。
x
n
来自哪里?当你上Java数学课的时候,为什么要做这么多呢。这就像数学一样简单。exp(n)“帮助我的人得10分”什么,你不打算接受答案吗?那我就帮不了你了。每一分多少美元?;)“寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。”问题中的代码不编译,所以不能用来重现所描述的问题。
x
n
来自哪里?当你上Java数学课的时候,为什么要做这么多呢。这就像数学一样简单。exp(n)“帮助我的人得10分”什么,你不打算接受答案吗?那我就帮不了你了。每一分多少美元?;)“寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。”问题中的代码不编译,所以不能用来重现所描述的问题。
x
n
来自哪里?当你上Java数学课的时候,为什么要做这么多呢。这就像数学一样简单。exp(n)“帮助我的人得10分”什么,你不打算接受答案吗?那我就帮不了你了。每一分多少美元?;)“寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。”问题中的代码不编译,所以不能用来重现所描述的问题。
x
n
来自哪里?当你上Java数学课的时候,为什么要做这么多呢。这就像数学一样简单。exp(n)
double
而不是
long
?double比long有更多的净空,因为double可以存储更大的值,虽然在某些情况下,你也不会非常精确。有什么理由在像
long
这样的东西上使用
double
吗?double比long有更多的净空,因为double可以存储更大的值,虽然在某些情况下,你也不会非常精确。有什么理由在像
long
这样的东西上使用
double
吗?double比long有更多的净空,因为double可以存储更大的值,虽然在某些情况下,你无论如何都不会非常精确。有什么理由在像
long
这样的东西上使用
double
吗?double比long有更多的净空,因为double可以存储更大的值,尽管在某些情况下你无论如何都不会非常精确。