//Horner法则 求 多项式的值 //author:zhuxuehan //blog:hi.baidu.com/boyzxh #include<stdio.h> #include<stdlib.h> #define maxsize 100 int horner(int xishu[],int n,int x); int main(){ int xishu[maxsize]; //存放系数 int n; //n次多项式 int x; //关于x的多项式 int i,j; //循环变量 int res; //结果 printf("共有几次?"); scanf("%d",&n); printf("依次输入系数:"); if((n+1)<maxsize){ for(i=0;i<n+1;i++) //最高次为n时,共有n+1项,因为还有0次项 scanf("%d",&xishu[i]); } else return -1; printf("x的值:"); scanf("%d",&x); res = horner(xishu,n,x); printf("结果是:%d/n",res); system("pause"); return 0; } int horner(int xishu[],int n,int x){ //horner法则求多项式 int i; int res = xishu[n]; for(i=1;i<=n;i++) res = res*x + xishu[n-i]; return res; } /* 求 x^3 + 2x + 3的值--------------- 3*x^0 + 2*x + 0*x^2 + 1*x^3 则: 最高次为:3 依次输入的系数为:3 2 0 1 当x=2时,值为15。 */