【题目链接】
ybt 1035:等差数列末项计算
OpenJudge NOI 1.3 18:等差数列末项计算
【题目考点】
1. 等差数列
设等差数列第i项为
a
i
a_i
ai,相邻两项的差为
d
d
d
递推公式:
a
i
=
a
i
−
1
+
d
a_i= a_{i-1} + d
ai=ai−1+d
通项公式:
a
n
=
a
1
+
(
n
−
1
)
d
a_n = a_1 + (n-1)d
an=a1+(n−1)d
2. (扩展)循环
【题解代码】
解法1:用等差数列的递推公式 a i = a i − 1 + d a_i= a_{i-1} + d ai=ai−1+d
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a1, a2, n, ai;
cin>>a1>>a2>>n;
int d = a2 - a1;
ai = a1;
for(int i = 2; i <= n; ++i)
ai = ai + d;
cout<<ai;
return 0;
}
解法2:用等差数列的通项公式 a n = a 1 + ( n − 1 ) d a_n = a_1 + (n-1)d an=a1+(n−1)d
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a1, a2, n;
cin>>a1>>a2>>n;
cout<<a1+(a2-a1)*(n-1);
return 0;
}