1418 - C语言-阶乘数列

通过次数

0

提交次数

0

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

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。

题目输入

n

题目输出

输入/输出样例

输入格式

5

输出格式

153

C语言解答

int main(int argc, char* argv[])
{
  long	double sum,i,a,n;
	while(~scanf("%llf",&n))
	{
		sum=0;a=1;
	  for(i=1;i<=n;i++)
	  { 
		  sum+=a*i;
		   a=a*i;
	  }
	  printf("%.0llf\n",sum);
	}
	return 0;
}

C++解答

#include<iostream>
using namespace std;
long long a[1001];
void fun(int n)
{
  int i;
  a[1]=1;
  a[2]=2;
  for(i=3;i<=n;i++)
    a[i]=a[i-1]*i;
}
int main()
{
  int i,n;
  fun(1000);
  while(cin>>n)
  {
    long long x=0;
    for(i=1;i<=n;i++)
      x+=a[i];
    cout<<x<<endl;
  }
  return 0;
}

Java解答



import java.util.Scanner;

public class Main{
   private static Scanner s = new Scanner(System.in) ;
   
   public static void main(String[] args) {
	  int n = s.nextInt() ;
	  long sum = 0 ;
	  long t = 1 ;
	  
	  for (int i = 1; i <= n; i++) {
		  for (int j = 1; j <= i; j++) {
			 t = t*j ;
		  }
		  
		  sum = sum+t ;
		  t = 1 ;
	  }
	  
	  System.out.println(sum) ;
   }
}