题目描述:一个实数数列共有N项,已知ai = (a_i-1 - a_i+1) / 2 + d, (1 < i < N)(N < 60)键盘输入N,d, a1, an, n, 输出 an。
进行简单的代换
2ai - 2d = ai-1 - ai+1 ==>
ai+1 = ai-1 - 2ai + 2d ==>
ai = ai-2 - 2ai-1 + 2d 2 <= i < N (N < 60)
就变成了简单的斐波那契数列的变形嘛。
以下为代码实现:
#include <iostream>
#include <cmath>
using namespace std;
int ak(int N, int d, int a1, int a2, int n) {
int a[60];
a[0] = a1;
a[1] = a2;
for(int i = 2; i < 60; i ++)
a[i] = a[i - 2] - 2 * a[i - 1] + 2 * d;
cout << a[n] << endl;
}
int main()
{
int N, d, a1, a2, n;
cin >> N >> d >> a1 >> a2 >> n;
ak(N, d, a1, a2, n);
return 0;
}