码迷,mamicode.com
首页 > 编程语言 > 详细

秦九韶算法c++

时间:2017-10-09 19:37:41      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:printf   掌握   for   def   include   mod   style   scan   模拟   

在网上看到很多秦九韶算法的博客都是用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++

标签:printf   掌握   for   def   include   mod   style   scan   模拟   

原文地址:http://www.cnblogs.com/cytus/p/7642518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!