文章

【GESP】C++一级练习 luogu-B2032, 等差数列末项计算

本篇文章将带你探索一个简单的等差数列问题,通过通项公式求出等差数列末项。

luogu-B2032

题目要求

描述

等差数列是一个很有趣的数列,它的任何相邻两项的差相等。

现在给出一个等差数列的前两项 $a_1,a_2$ 的值,求第 $n$ 项是多少。

输入

一行,包含三个整数 $a_1,a_2,n$($-100 \le a_1,a_2 \le 100$,$0<n \le 1000$。)

输出

一个整数,即第 $n$ 项的值。

输入样例-1

1
1 4 100

输出样例-1

1
298

题目分析

这道题目的逻辑非常简单:

  1. 等差数列的定义是任何相邻两项的差相等
  2. 已知前两项的值a1和a2,可以计算出公差d
  3. 根据等差数列的公式,第n项的值可以通过a1和d计算得到
  4. 公式为an = a1 + (n - 1) * d

因此,我们只需要从输入中读取a1, a2, 和n,然后计算出公差d,最后根据公式计算第n项的值。

示例代码

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main() {
    int a, b, n; // 定义变量a, b, n,用于存储输入的三个整数
    cin >> a >> b >> n; // 从标准输入读取三个整数a, b, n
    int d = b - a; // 计算等差数列的公差d
    cout << a + (n - 1) * d; // 输出第n项的值,根据等差数列的公式计算
    return 0; // 返回0,表示程序执行成功
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权