[编程入门]阶乘求和

  • 题目描述

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

  • 输入

n

  • 输出

Sn的值

  • 样例输入
5
  • 样例输出
153
#include<stdio.h>
int main()
{
    //i控制循环的次数,b为输入的数字,a为每次加的数,sn为和
    //此题的关键是:sn和a必须为long double型,否则可能会发生溢出,导致结果不正确
	int i=1,b;
	long double sn=0;
	long double a=1;
	scanf("%d",&b);
	for(i=1;i<b;i++)
	{
		a=a*(i+1);
		sn=sn+a;
	}
	sn+=1;
	printf("%.0Lf",sn);
	return 0;
}

 

更多推荐

C语言 [编程入门]阶乘求和