gpt4 book ai didi

java - 在e ^ x JAVA系列中找到某个术语的程序

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

我的程序通过首先查找n个阶乘形式的用户输入。然后,我将其取值并执行1 / n以在该位置找到该术语。然后,我需要将所有以前的术语加在一起,以找到该系列中该术语e的近似值。

它在系列中显示了正确的第n个术语,但是当我将它们加在一起时,它们总是会出错。

这是我程序的代码:

import java.util.*;

public class Lab01b {

public static void main(String[]args){




Scanner scan = new Scanner(System.in); // Creates a Scanner object to get input from the user

double term = -1.0;
double e = 0.0;



/* Loop to recieve user's input */
while(term < 0){
System.out.println("Enter factorial number");
term = scan.nextDouble();
if(term < 0)
System.out.println("Enter a number greater than 0");
}




e = factorial(term);

System.out.println("Term: "+term);
System.out.println("e: "+e);
System.out.println("Final: "+ e(e, term));





}


/*Method to calculate a factorial*/
public static double factorial(double n){

double factorial =1;

for(int i =1; i <= n; i++){

factorial *= i;

}

return factorial;
}




/* Method to calculate e^x*/
public static double e(double n, double input){


double factorial = 0.0;
double counter = 0.0;

for(int i = 0; i < input+1; i++){

factorial = 1/n;

counter += factorial;


}

return counter;

}

}

最佳答案

这不是编程问题,而是数学问题-您正在计算阶乘错误:

不是1 / n,而是1 / n!。因此,您的工作是对阶乘的条件求和。我将保存先前的阶乘,因此您的循环所需要做的就是将其除以n。另外,请确保您所有的除法都是双除法而不是int除法,因为int / int会返回int。

因此,1/20将返回0,而1.0 / 20将返回0.05。

例如。,

fact = 1;
sum = 1.0;
for (int i = 1; i < max; i++) {
fact *= i;
sum += 1.0 * n / fact;
}

关于java - 在e ^ x JAVA系列中找到某个术语的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222550/

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