在C语言中如何表达每个阶层的倒数相加?

2025-01-07 02:09:32
推荐回答(1个)
回答1:

/*factorial*/
#include
float Factorial(int n);//求阶乘的函数
float Sum(int n);//求阶乘前n项倒数和的函数
int main()
{
int i;
int num;
scanf("%d",&num);
for( i=1;i {
printf("1/%d! = ",i);//输出 “n!”
printf("%f\n",1/Factorial(i));//输出n!的值
}
for(i=1;i printf("1/%d!+",i);//输出1!+1/2!+…+1/(n-1)!+
printf("%d!=%f\n", i,Sum(i) );//输出1/n!=前n项的阶乘倒数和
return 0;
}
float Factorial(int n)
{
if(n==0||n==1)
return 1;//0!=1||1!=1
else return n*Factorial(n-1);//其他的阶乘n!=n*(n-1)*…1
}
float Sum(int n)
{
float N=1/Factorial(n);//用N代表数n的阶乘的倒数
if(N==1) return 1;//如果N=1则说明只有一项即n=1
else return N+Sum(n-1);//其他的情况返回前n项阶乘倒数之和
}