在网上看到很多秦九韶算法的博客都是用java写的,这里我就写一个c++的,这个算法也比较好理解,就不多做解释了,具体看代码,代码中会有解释,如果不懂的话,在纸上模拟一下就很好懂了,上代码:
#include<bits/stdc++.h> #define N 1001 using namespace std; int n,x,a[N],mod; int main() { int ans; scanf("%d%d%d",&n,&x,&mod);//n表示函数f(x)中x的最高次项,mod表示取模数; for(int i=0;i<=n;i++) scanf("%d",&a[i]);//a[i]表示每一次项的系数; ans=a[n]; for(int i=n-1;i>=0;i--) { ans=(ans*x+a[i])%mod;//秦九韶算法主体,数学式为f(x)=(...((a[n]*x+a[n-1])*x+a[n-2])*x+...a[1])*x+a[0]; } printf("%d",ans); return 0; }