求解一元二次方程 二阶差分法

  

#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
",s[n]);
    return 0;
}

原文地址:https://www.cnblogs.com/WDKER/p/5487200.html