思路:利用差分思想,计算有规律序列
参考博客:
http://blog.youkuaiyun.com/wangjie_wang/article/details/9149683
http://rchardx.is-programmer.com/posts/16142.html
题外话,:拉格朗日插值法也是希望找出n个数背后的通项公式。
差分的意思就是指,前一个数减去后一个数。
比如题中序列
1 2 4 7 11 16 22
.这是原始序列,称之为0阶差分,
用前一个数减去后一个数得到:1 2 3 4 5 6
,这种操作进行一次,我们称之为1阶差分.
在一阶差分基础上再进行差分运算。
得到1 1 1 1 1
这是2阶差分
如此循环下去,进行n-1次,也就是计算n-1阶差分
通过差分定义(后面的数-前面的数)发现,i阶差分序列的个数等于i-1阶差分的数目减一。 等于 n-i。 n是原始序列,0阶差分序列的个数。
所以求差分的公式如下:
for(int i=0;i<n;i++){
scanf("%d",&s[0][i]);
}
// calculate the cha fen