编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k...
发布网友
发布时间:2024-09-30 17:46
我来回答
共5个回答
热心网友
时间:2024-10-06 02:01
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;
}
热心网友
时间:2024-10-06 02:05
呃,刚看错题了,mmdeniubi的答案貌似可以
热心网友
时间:2024-10-06 02:00
可以这样修改
#include<stdio.h>
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;
}
热心网友
时间:2024-10-06 02:02
#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;
}
热心网友
时间:2024-10-06 02:06
#include<stdio.h>
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);
}