用C++如何写1!+2!+3!+......+20!

来源:百度知道 编辑:UC知道 时间:2024/07/06 20:08:57

#include <iostream>
using namespace std;

int main()
{
long long int sum=0, n=1;

for (int i=1; i<=20; ++i)
{
n *= i;
sum += n;
}
cout << sum << endl;
}

#include<iostream>
using namespace std;;
int fact(int n)
{
int f=1;
for(int k=1;k<=n;k++)
fact=fact*k;
return fact;
}
int main()
{
int sum=0;
for(int j=1;j<=20;j++)
sum=sum+fact(j);
cout<<sum;
system("PAUSE");
return 0;
} 改成long long就不会溢出了吧 我也是刚学

2L正解

1L的程序错误。20!太大,会导致int型无法储存,然后溢出。

#include<stdio.h>
void main()
{
long long int sum=0,pro=1;
int i=1;
do
{
pro*=i;
sum+=pro;
i++;
}while(i<=20);
printf("%ld\n",sum);
getchar();

}
算法是对的,但是答案都是错的!<