1.cpp
来自「通过递推算法求多项式值通 过递推算法求多项式值」· C++ 代码 · 共 45 行
CPP
45 行
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
void main()
{float p1[3][51],p2[3][51],p3[3][110];//p[0][]存直接计算结果,p[1][]存从前往后递推结果,p[2][]存从后往前递推结果。
int i;
p1[0][0]=1; p1[1][0]=1; p1[0][1]=0.25*(sqrt(5)-1); p1[1][1]=0.25*(sqrt(5)-1); //x=0.5
p2[0][0]=1; p2[1][0]=1; p2[0][1]=0.5*(sqrt(5)-1); p2[1][1]=0.5*(sqrt(5)-1); //x=1
p3[0][0]=1; p3[1][0]=1; p3[0][1]=1.5*(sqrt(5)-1); p3[1][1]=1.5*(sqrt(5)-1); p3[1][109]=10e10; p3[1][108]=10; //x=3
for(i=2;i<=50;i++)
{p1[0][i]=p1[0][i-1]*0.25*(sqrt(5)-1);
p1[1][i]=0.25*p1[1][i-2]-0.5*p1[1][i-1];
p2[0][i]=p2[0][i-1]*0.5*(sqrt(5)-1);
p2[1][i]=p2[1][i-2]-p2[1][i-1];
p3[0][i]=p3[0][i-1]*1.5*(sqrt(5)-1);
}
for(i=99;i>=2;i--)//ditui
{p3[1][i-2]=p3[1][i-1]/3+p3[1][i]/9;
}
cout<<"x=0.5"<<endl;
cout<<" 直接计算 正向递推 差值"<<endl;
for(i=46;i<=50;i++)
{cout<<"P"<<i<<":"<<setw(14)<<p1[0][i]<<" "<<setw(14)<<p1[1][i]<<" "<<setw(14)<<p1[0][i]-p1[1][i]<<endl;
}
cout<<endl<<"x=1"<<endl;
cout<<" 直接计算 正向递推 差值"<<endl;
for(i=46;i<=50;i++)
{cout<<"P"<<i<<":"<<setw(14)<<p2[0][i]<<" "<<setw(14)<<p2[1][i]<<" "<<setw(14)<<p2[0][i]-p2[1][i]<<endl;
}
cout<<endl<<"x=3"<<endl;
cout<<" 直接计算 正向递推 差值"<<endl;
for(i=46;i<=50;i++)
{cout<<"P"<<i<<":"<<setw(14)<<p3[0][i]<<" "<<setw(14)<<p3[1][i]<<" "<<setw(14)<<p3[0][i]-p3[1][i]<<endl;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?