1. 程式人生 > >秦九韶算法c++

秦九韶算法c++

clu using 主體 網上 pre ... 如果 define 都是

在網上看到很多秦九韶算法的博客都是用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; } //很水,對吧?

秦九韶算法在很多情況下都用得上,可以有效減少代碼復雜度,所以一定要掌握好,神犇的稱號在遠方等你!

秦九韶算法c++