c语言计算多项式的值?

最后一位一直多出5...
2026年09月22日 23:21
有1个网友回答
网友(1):

思路:

因为这是个加法的多项式,用变量s累加,s的最初值是0,第1次向上加1!,第2次加2!,...,第n磁加n! s+=jc;阶乘变量jc在循环中计算。

每项用循环变量i控制,第1次循环取值1,第2次循环取值2,...,第20次循环取值20,这个变量就是要求的阶乘数,i的值每次加1

阶乘是个累乘的运算,用变量jc,初始值是1,第1次向上乘以循环变量值1,就是1!,第2次是前边计算好的1!*2=2!,...,第20次就是19!*20=20!,jc*=i;

由于20!数据比较大,对于32bit的int型变量存放不下,可以考虑用double型数据计算,省得溢出。

因此程序主体算法为:

int i;

double s,jc;

s=0; jc=1;

for ( i=1;i<=20;i++ ) { jc*=i; s+=jc; }

printf("%lf\n",s);