3343 - 习题5-6-1 连续阶乘求和

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 12 MB

输入一个正整数N,求1!+2!+3!+...+N!,即求

 

提示:由于>10的整数的阶乘非常大,已超出整数的表示范围,故求阶乘时,需要将变量定义为double类型。

题目输入

输入一个正整数N

题目输出

1~N连续阶乘的和,1!+2!+3!+...+N!的和,末尾换行。

输入/输出样例

输入格式

10

输出格式

4037913

C语言解答

#include<stdio.h>
int main()
{
	double sum=0,num,i,j;
	int n;
	scanf("%d",&n);
	for (i=n;i>=1;i--)
	{
		for(j=i,num=1;j>=1;j--)
			num*=j;
		sum+=num;
	}
	printf("%.0lf\n",sum);
	return 0;
}

C++解答

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n;
	cin>>n;
	double t=1,sum=0;
	for (int i=1; i<=n; i++)
	{
		t*=i;
		sum+=t;
	}
	printf("%.0lf\n",sum);
	return 0;
}