举例说明算法:
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);
}
#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!="<
这么大的数,先确定怎么保存.
C++没有数据类型能保存这么大的数字.