C语言计算多项式f(x) = ax3 + bx2 + cx + d?

Python020

C语言计算多项式f(x) = ax3 + bx2 + cx + d?,第1张

#include<stdio.h>

int main()

{

float a, b, c, d, f, x

printf("请输入多项式系数a,b,c,d:")

scanf("%f%f%f%f", &a, &b, &c, &d)

printf("请输入变量x:")

scanf("%f", &x)

f = a * x * x * x + b * x * x + c * x + d

printf("f(x)=%f\n", f)

return 0

}

思路:

因为这是个加法的多项式,用变量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=0jc=1

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

printf("%lf\n",s)