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

来源:互联网 发布:吴飞 心知天气 编辑:程序博客网 时间:2024/04/27 09:08
/***************************************************************
              累加(C语言)
   
                                         AUTHOR:liuyongshui
                                         DATE:********
 ***************************************************************/
/*
    问题五: f=1!-2!+3!-4!+...+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 k=1;
      int s=1;
      int sum=0;  

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

          sum+=s*k;
          k=-1*k;    //改变k的符号
          s=1;       //计算i!后把s赋值为1
      }
    
      printf("%d\n", sum);
}
原创粉丝点击