Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ นับจำนวนขั้นบันไดและจำนวนขั้นในแต่ละขั้นบันได

สมมติว่าเรามีอาร์เรย์ A ที่มี n องค์ประกอบ มานั่น อมลปีนบันไดภายในอาคารหลายชั้น ทุกครั้งที่ปีน เริ่มนับจาก 1 เช่น ถ้าเขาปีน 2 ช่วงบันได 3 ขั้นและ 4 ขั้น เขาจะพูดตัวเลข 1, 2, 3, 1, 2, 3, 4 ในอาร์เรย์ A ตัวเลขแทนหมายเลขขั้นที่อมลพูด เราต้องนับจำนวนช่วงบันไดที่เขาปีน และพิมพ์จำนวนขั้นในแต่ละช่วงบันได

เช่น ถ้าค่าที่ป้อนเข้าเป็น A = [1, 2, 3, 1, 2, 3, 4, 5] ผลลัพธ์จะได้ 2, [3, 5]

ขั้นตอนการแก้ปัญหา

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

p = 0 n := ขนาดของ A สำหรับ i := 0 เมื่อ i < n เพิ่ม i ทีละ 1 ทำ:    ถ้า A[i] เท่ากับ 1 แล้ว:       (เพิ่ม p ขึ้น 1) พิมพ์ p สำหรับ i := 1 เมื่อ i < n เพิ่ม i ทีละ 1 ทำ:    ถ้า A[i] เท่ากับ 1 แล้ว:       พิมพ์ A[i - 1] พิมพ์ 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