因子总和无法正常工作

时间:2014-05-18 04:58:26

标签: c loops factorial

我正在使用Dev c ++,我的代码在c中。 我想编制一个汇总计算器。它总结了以下系列的术语数量

1/1! + 2/2! + 3/3! + .... 术语取自输入

这是我的代码,但是当我运行它时会挂起

#include<stdio.h>
#include<conio.h>
int main(void)
{
long i,j,facto=1,inp;
double sum=0;
scanf("%ld",&inp);
for (i=0;i<inp;i++)
{
    for (j=i;j>1;j--)
    {
        facto *= j;
    }
    sum += i / facto;
}
printf("%f",sum);

getch();
return 0;
}

2 个答案:

答案 0 :(得分:1)

您的代码有几个问题:

  1. 你根本不需要内循环。这占用了大部分时间,这可能是您经常看不到输出的原因(可能是挂起 ing的原因)。这样做:

    facto = 1;
    for (i=1;i<=inp;i++)
    {
        facto *= i; 
        sum += i / facto;
    }
    
  2. 由于ifacto都是int s,i / facto大部分时间都是0。所以修改它。

    sum += 1. * i / facto;
    

答案 1 :(得分:0)

更改
for (i=0;i<inp;i++) 至  for (i=1;i<=inp;i++)

 for (j=i;j>1;j--)for (j=i;j>=1;j--)
sum += i / facto;sum += i*1.0 / facto;

 在sum += i*1.0 / facto;facto =1;

之后
相关问题