c++求1到100的数的阶乘的和

1!+2!+3!+……+100!=?
2024-10-31 08:25:15
推荐回答(3个)
回答1:

举例说明算法:

1!+2!+3!+……+n!

=1+2*(1+3*(1+4*(1+5(1+......(1+(n-1)*(1+n))......))))

   

不过当n=100貌似会溢出。嗯。

因此要实现一个大数乘法的函数,然后就很easy了

#include
void main()
{
    long sum;
    int n=100;
    sum=n;
    while(n!=1)
    {
        sum+=1;
        sum*=n-1;//使用大数乘法函数替代这里的处理
        n--;
    }
    printf("%d\n",sum);
}

回答2:

#include
using namespace std;
int main()
{
int i,j,s;
int sum=0;
for i=1,i<=100,i++
{
s=1
for j=1,j<=i,j++
{
s=s*j;
}
end
sum=sum+s;
}
edn
cout<< "1!+2!+3!+……+100!="<}

回答3:

这么大的数,先确定怎么保存.
C++没有数据类型能保存这么大的数字.