C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

階段の数と各階段のステップ数をカウントするC++プログラム


n個の要素を持つ配列Aがあるとします。アマルが高層ビルの階段を上っていくようにしましょう。登るたびに、1から数え始めます。たとえば、3段と4段の2つの階段を上る場合、1、2、3、1、2、3、4のような数字を話します。配列Aでは、数字はアマルが言った階段の数字を表しています。彼が登った階段の数を数え、各階段の階段の数も印刷する必要があります。

したがって、入力が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

  1. コインを払ってnに到達するために必要な操作の数を数えるC++プログラム

    N、A、B、C、Dの5つの数字があるとします。0から始まりNで終わります。次の操作で、特定の数のコインで数字を変更できます- 数値に2を掛けて、Aコインを支払います 数値に3を掛けて、Bコインを支払います 数値に5を掛けて、Cコインを支払います 数を1増やしたり減らしたりして、Dコインを支払います。 これらの操作は、任意の回数、任意の順序で実行できます。 Nに到達するために必要なコインの最小数を見つける必要があります したがって、入力がN=11のような場合。 A =1; B =2; C =2; D =8の場合、最初はxが0であるため、出力は19になります。 8枚のコインでxを1増やし

  2. サイズdで作成できる十二角形の数をカウントするC++プログラム

    数dがあるとします。正方形のタイルと辺の長さが1の通常の三角形のタイルが無数にあると考えてください。これらのタイルを使用して、側面dの通常の十二角形(12辺の多角形)を形成できる方法をいくつ見つける必要があります。答えが大きすぎる場合は、結果mod998244353を返します。 ステップ これを解決するために、次の手順に従います- b := floor of d/2 - 1 c := 1 for initialize i := 2, when i < d, update (increase i by 1), do:    b := b * (floor of