编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,

2024-11-07 18:49:50
推荐回答(5个)
回答(1):

sum=1/n+sum;
中心算法就是这一句
应余喊该是
sun+=1.0/fact(i);

fact是系统函数,这不应自己编写戚睁,调用即可,应该在math.h头文件中吧
不过这样效率要低下不少,高毁岁因为每次都需要计算n的阶乘
好的算法是

int i,n,s=1;
float sum=0;

for(i=1;i<=n;i++)
{
s*=i; //计算i的阶乘
sum+=1.0/s;

}

回答(2):

可以这兆慧滑样修改

#include

double fact(int k)
{
  double res = 1.0;
  int i;
  for(i=2; i<=k; i++)
    res *= 碧亮i;
  return res;
}

int main()
{
  double sum=0;
  int i,n;
  族腊scanf("%d",&n);
  for(i=1;i<=n;i++){
    sum += 1.0/fact(i);
  }
  printf("sum=%.5lf\n",sum);
  return 0;
}

回答(3):

#include<戚激stdio.h>
double fact(int k)
{
double res = 1.0;
while (k>=1)
{
res *= k;
k--;
}
return res;
}
int main()
{
double sum=0.0;
int i,n;
scanf("%d",&n);
for(i=1;i<高侍袜=n;i++)
{
sum+=1.0/谈桐fact(i);
}
printf("sum=%.5lf\n",sum);
return 0;
}

回答(4):

#include
int fact(int k)
{
int s = 1, i;
for (i = 1; i <= k; i )
s *= i;
return s;
}

void main()
{
int i, n;
double sum = 0, q, w;
scanf("%d", &n);
for (i = 1; i <= n; i )
{
q = fact(i);
sum = 1.0/腊盯 q;
}
printf("轮如和%.5f\n"橡扰, sum);
}

回答(5):

呃,刚看错题了,mmdeniubi的答案貌似可以