1!+2!+3!+……+100!=?
举例说明算法:
1!+2!+3!+……+n!
=1+2*(1+3*(1+4*(1+5(1+......(1+(n-1)*(1+n))......))))
不过当n=100貌似会溢出。嗯。
因此要实现一个大数乘法的函数,然后就很easy了
#include<stdio.h>void main()
{
long sum;
int n=100;
sum=n;
while(n!=1)
{
sum+=1;
sum*=n-1;//使用大数乘法函数替代这里的处理
n--;
}
printf("%d\n",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-05-08
#include <iostream>
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!="<<sum
}
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!="<<sum
}
第2个回答 2013-05-07
这么大的数,先确定怎么保存.
C++没有数据类型能保存这么大的数字.
C++没有数据类型能保存这么大的数字.