输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n

kan shang mian

#include <iostream.h>
//using namespace std;

int fact (int n)//递归求N的阶乘
{
if(n==0||n==1) return 1;
else return n * fact(n-1);
}

void main ()
{
int n;
double sum=0.0;
cin>>n;
while (n >= 0)
{
sum = sum + 1/(double(fact(n)));//求1/n!的和,其中n!是整形数,必须强制转换为双精度实型
n--; //否则结果就会出错
}
cout << sum << endl; //sum记录了求和结果,输出即可

} //end

程序已经在c++ 6.0调试通过。可用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-11
int jie_cheng(int n)
{
if(n==1) return 1;
return n*jie_cheng(n-1);
}

double fact(int n)
{
double sum = 0;
for(int i = 1; i<=n; i++)
{
sum += 1/jie_cheng(i);
}
return sum;
}本回答被提问者采纳