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 + -
显示快捷键?