这是一道在PTA上的简单题,但是由于我是一个新手刚开始使用这个平台很多地方都不熟悉,这里是来讲解一些我遇见的问题和这道题的难点。 
首先便是输入代码一直给你说编译错误,比如

告诉你redefinition of 'main',这个时候你仔细看题,会发现有一个“裁判测试程序样例”,并且在下方有一段“/*你的代码将被镶嵌在这里的提示*/”,那么问题便在这个地方,你不用写那些#include int main()的头文件,因为上文都已经写好了,你只用完成你需要写的代码部分。
在这道题里你便只用完成
double f(int n,double a[],double x){
double f=0;
for(int i=n;i>=0;i--){
f=a[i]+f*x;
}
return f;
}
这一部分的书写。
其实这道题有两个方法,我在自己做计算的时候,因为要算x的i次方,写了一个循环套循环,当输入数字很大时,很容易卡住,出现runtime wrong,因此要避免。
这道题中,第一个方法,是使用化简,将多项式化简,如

则有了
double f(int n,double a[],double x){
double f=0;
for(int i=n;i>=0;i--){
f=a[i]+f*x;
}
return f;
}
第二种方法,便是使用函数
pow函数应用于c/c++中,计算x的y次方的次幂
#include <math.h>
double f(int n,double a[],double x){
double f=0;
for(int i=1;i<=n;i++){
f=f+a[i]*pow(x,i);
}
return f;
}
不过需要添加#include <math.h> 才可以使用。
博主作为新手,讲解在PTA平台做简单题遇到的问题及难点。输入代码提示编译错误,是因有“裁判测试程序样例”,不用写头文件。做题有两个方法,避免循环套循环导致runtime wrong,可化简多项式,也可使用pow函数,使用时需添加<math.h>头文件。






