等差数列末项计算

GitHub跳转原题关系图返回列表

利用 an=a1+(n-1)(a2-a1) 直接计算等差数列第 n 项。

OJ: noi_openjudge

题目 ID: ch0103-18

难度:入门

标签:数学python

日期: 2026-07-30 23:01

题意

给出等差数列前两项和位置 nn,求第 nn 项。

思路

公差为 a2a1a_2-a_1,第 nn 项是 a1+(n1)(a2a1)a_1+(n-1)(a_2-a_1)。不用循环累加,直接代入通项公式即可。

代码

Python代码

python
first, second, n = map(int, input().split())
print(first + (n - 1) * (second - first))

C++代码

cpp
/* 
 * an = a1 +(n-1)*(a2-a1)
 * */
#include <cstdio>

int main(){
    int a1,a2,n;
    scanf("%d%d",&a1,&a2);
    scanf("%d",&n);
    int ans = a1+(n-1)*(a2-a1);
    printf("%d\n",ans);
    return 0;
}

复杂度

时间复杂度和额外空间复杂度均为 O(1)O(1)

总结

等差数列首项、末项题先写公差,再写通项,避免把 n1n-1 错写成 nn