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

kan shang mian
2024-11-27 00:38:09
推荐回答(2个)
回答1:

#include
//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调试通过。可用

回答2:

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;
}