请问1!+2!+3!........+50!C语言怎么写!!急需要答案

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:03:56
请高手用c语言把代码告诉我!非常感谢

double也不行,精度根本不够,下面这个是高精度算法。
#include <stdio.h>

int main( )
{
int a[ 200 ] = { 0 }, sum[ 200 ] = { 0 }, i, j, k = 0, l = 0, p = 0, s;
a[ 0 ] = 1;
for ( i = 1; i <= 50; i++ )
{
for ( j = 0; j <= k; j++ )
{
s = a[ j ] * i + p ;
p = 0;
if ( s > 9999 )
{
a[ j ] = s % 10000;
p = s / 10000;
if ( k == j )
{
k++;
a[ k ] = 0;
}
}
else
a[ j ] = s;
}
if ( l < k ) l = k;
for ( j = 0; j <= l; j++ )
{
s = a[ j ] + sum[ j ] + p;
p = 0;
if ( s > 9999 )
{
sum[ j ] = s % 10000;
p = s / 10000;
if ( l == j )
{
l++;
sum[ l ] = 0;
}
}
else
sum[ j ] = s;
}
}
printf("%d", sum[ l ]);
for ( i = l - 1; i >= 0; i-- )
{