问题七: f=1!+1/2!+1/3!+1/4!+...+1/n!(n为一定大的数,太大了会溢出)

来源:互联网 发布:中国陆军知乎 编辑:程序博客网 时间:2024/04/29 07:21
/***************************************************************
              累加(C语言)
   
                                         AUTHOR:liuyongshui
                                         DATE:********
 ***************************************************************/
/*
    问题七: f=1!+1/2!+1/3!+1/4!+...+1/n!(n为一定大的数,太大了会溢出)

*/

#include <stdio.h>
        
void f(int m);      //原函数声明

int main()
{
    int n;

    printf("请输入一个数(不能太大):");
    scanf("%d", &n);

    f(n);     //把n带入f()函数

    return 0;
}

// f()函数定义
void f(int m)
{
      int i;
      int j;
      int s=1;
      double sum=0.0;  

      for(i=1; i<=m; i++)
      {
          for(j=1; j<=i; j++)
          {
              s*=j;      //计算i!
          }

          sum+=1.0/s;    //sum=sum+1.0/s;

          s=1;    //算完i!后,s赋值为1
      }
    
      printf("%lf\n", sum);    //输出结果
}
原创粉丝点击