题目描述
编写程序,输入一个正整数n,求下列算式的值。用函要求定义和调数fact(k)计算k的阶乘,函数返回值的类型是double。
1+1/2!+ .... +1/n!
输出保留5位小数。
输入
5
输出
1.71667
样例输入
5
样例输出
1.71667
提示
地区
南京研究所
产品线
公共
阶段
招聘
难度
1级
public double getShuLieHe(){
Scanner sc=new Scanner(System.in);
int n=0;
try{
n=sc.nextInt();
if(n<1)
return -1;//输入一个正整数n
}catch(InputMismatchException ex){
return -1;//输入不合法时返回-1
}
double sum=0;
for(int k=1;k<=n;k++){
sum+=1/(double)fact(k);
}
sum=Double.parseDouble(String.format("%.5f", sum));//保留5位小数
return sum;
}
public int fact(int n) {//阶乘函数
int product=1;
for(int i=1;i<=n;i++){
product*=i;
}
return product;
}