假设我们有一个包含 n-1 个元素和两个值 a 和 b 的数组 D。在一支军队中,有 n 个等级,从 1 到 n 编号。一个人需要 D[i] 年才能从等级 i 上升到等级 i+1。Amal 刚刚达到新的“a”级,但他想达到“b”级。我们必须计算他需要多少年才能达到他的目标。
所以,如果输入像 D = [5, 6]; a = 1; b = 3,则输出为 11。
为了解决这个问题,我们将遵循以下步骤 -
n := size of D s := 0 for initialize i := a - 1, when i < b - 1, update (increase i by 1), do: s := s + D[i] return s
示例
让我们看看以下实现以更好地理解 -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> D, int a, int b){ int n = D.size() + 1; int s = 0; for (int i = a - 1; i < b - 1; i++){ s = s + D[i]; } return s; } int main(){ vector<int> D = { 5, 6 }; int a = 1; int b = 3; cout << solve(D, a, b) << endl; }
输入
{ 5, 6 }, 1, 3输出结果
11