C++程序用于统计楼梯数量以及每段楼梯的台阶数


假设我们有一个包含n个元素的数组A。假设Amal在一个多层建筑里爬楼梯。每次他爬楼梯时,都从1开始计数。例如,如果他爬了两段楼梯,分别有3个台阶和4个台阶,他就会说出像1、2、3、1、2、3、4这样的数字。在数组A中,这些数字代表Amal所说的楼梯号码。我们需要统计他爬了多少段楼梯,并打印每段楼梯的台阶数。

所以,如果输入像A = [1, 2, 3, 1, 2, 3, 4, 5],那么输出将是2,[3, 5]

步骤

为了解决这个问题,我们将遵循以下步骤:

p = 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   if A[i] is same as 1, then:
      (increase p by 1)
print p
for initialize i := 1, when i < n, update (increase i by 1), do:
   if A[i] is same as 1, then:
      print A[i - 1]
print A[n - 1]

示例

让我们看看下面的实现来更好地理解:

#include <bits/stdc++.h>
using namespace std;

void solve(vector<int> A) {
   int i, p = 0;
   int n = A.size();
   for (i = 0; i < n; i++) {
      if (A[i] == 1)
         p++;
   }
   cout << p << endl;
   for (i = 1; i < n; i++) {
      if (A[i] == 1)
         cout << A[i - 1] << ", ";
   }
   cout << A[n - 1];
}
int main() {
   vector<int> A = { 1, 2, 3, 1, 2, 3, 4, 5 };
   solve(A);
}

输入

{ 1, 2, 3, 1, 2, 3, 4, 5 }

输出

2
3, 5

更新于: 2022年3月3日

236 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告