这题计算不是太难,是简单数学计算,不过值得注意,就是保留小数点后九位,不能使用float数据类型,因为float数据类型只能存放小数点后八位。应该使用Double数据类型,另外使用DecimalFormat deci=new DecimalFormat(“0.000000000”);这样就可以保留小数点后九位。
使用Java来解决这一题,已经AC了。
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main{
public static double GetE(int n)
{
if(n==0)
{
return 1;
}
else
{
double sum;
double temp,aver;
double total=0;
for(int j=1;j<=n;j++)
{
sum=1.0;
for (int i = j; i >0; i--)
{
sum = sum * i;
}
aver=1/sum;
total=total+aver;
}
total=total+1;
return total;
}
}
public static void main(String []args)
{
Scanner scan=new Scanner(System.in);
int n;
double e;
System.out.println("n e");
System.out.println("- -----------");
//n=scan.nextInt();
for(int i=0;i<10;i++)
{
if(i==0||i==1)
{
e=GetE(i);
DecimalFormat deci=new DecimalFormat("0");
System.out.println(i+" "+deci.format(e));
}
else if(i==2)
{
e=GetE(i);
DecimalFormat deci1=new DecimalFormat("0.0");
System.out.println(i+" "+ deci1.format(e));
}
else
{
e = GetE(i);
DecimalFormat deci2=new DecimalFormat("0.000000000");
System.out.println(i + " " +deci2.format(e));
}
}
}
}