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;
}
可以这兆慧滑样修改
#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;
}
#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;
}
#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);
}
呃,刚看错题了,mmdeniubi的答案貌似可以