求解一元二次方程 二阶差分法
#include <cstdio> #include <algorithm> using namespace std; const int c=100000; int s[c],alpha[c],beta[c]; //s表示数值,alpha表示一阶差分,beta表示二阶差分 int main() { int k,n; s[0]=0; s[1]=1; s[2]=4; alpha[1]=1; alpha[2]=3; beta[2]=2; for(int i=3;i<=c;i++) { s[i]=s[i-1]+alpha[i-1]+beta[i-1]; alpha[i]=s[i]-s[i-1]; beta[i]=alpha[i]-alpha[i-1]; } while(~scanf("%d",&n)) printf("%d\n",s[n]); return 0; }