我输入1.2的时候输出结果是nan换成float也不行
1234567891234576
x=x * x这里不对,需要另外声明一个double类型的变量 t = x,然后 t = t * x。b = x/n改成 b = t/n
求阶乘不用单独的函数也行,我先按你的代码改。
代码修改如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double n,b=1;
double sum = 1;
double x = reader.nextDouble();
double t = x; //这里添加一个变量t,并初始化为x
for(int i=1;b>=0.00001;i++){
n = fangfa(i);
b = t/n; //这里改为 t/n
t = t*x; //这里改变t的值,不是改变x的值
sum = sum + b;
}
System.out.printf("%.4f", sum);
}
public static double fangfa(int a){
double num = 1;
for(int i=1;i<=a;i++){
num = num * i;
}
return num;
}
}