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

C++ですべてのゼロを配列の最後に移動します


複数のゼロを含む配列を指定します。配列内のすべてのゼロを最後まで移動する必要があります。例を見てみましょう。

入力

arr = [4, 5, 0, 3, 2, 0, 0, 0, 5, 0, 1]

出力

4 5 3 2 5 1 0 0 0 0 0

アルゴリズム

  • アレイを初期化します。

  • インデックスを0に初期化します。

  • 指定された配列を繰り返し処理します。

    • 現在の要素がゼロでない場合は、インデックスの値を現在の要素で更新します。

    • インデックスをインクリメントします。

  • 上記のインデックスからnまで繰り返すループを作成します

    • すべての要素を0に更新します。

実装

以下は、C++での上記のアルゴリズムの実装です

#include <bits/stdc++.h>
using namespace std;
void moveZeroesToEnd(int arr[], int n) {
   int index = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] != 0) {
         arr[index++] = arr[i];
      }
   }
   while (index < n) {
      arr[index++] = 0;
   }
}
int main() {
   int arr[] = {4, 5, 0, 3, 2, 0, 0, 0, 5, 0, 1};
   int n = 11;
   moveZeroesToEnd(arr, n);
   for (int i = 0; i < n; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

4 5 3 2 5 1 0 0 0 0 0

  1. C++の配列内のすべての素数の積

    いくつかの要素を持つ整数配列arr[]が与えられた場合、タスクはその数のすべての素数の積を見つけることです。 素数は、1で割った数、またはその数自体です。または、素数は、1とその数自体を除いて他の数で割り切れない数です。 1、2、3、5、7、11など 与えられた配列の解を見つける必要があります- 入力 −arr [] ={11、20、31、4、5、6、70} 出力 − 1705 説明 −配列の素数は− 11、31、5であり、それらの積は1705 入力 − arr [] ={1、2、3、4、5、6、7} 出力 − 210 説明 −配列の素数は− 1、2、3、5、7

  2. Pythonのリスト内包表記を使用して、すべてのゼロを配列の最後に移動します

    数値のリストが与えられたら、リスト内包表記を使用してすべてのゼロを最後に移動します。たとえば、[1、3、0、4、0、5、6、0、7]の結果は[1、3、4、5、6、7、0、0、0]です。 これは、リスト内包表記を使用した1行のコードです。結果を得るには、次の手順を参照してください。 番号のリストを初期化します。 リストから非ゼロを生成し、リストからゼロを生成します。両方を追加します。結果をリストに保存します。 新しいリストを印刷します。 例 # initializing a list numbers = [1, 3, 0, 4, 0, 5, 6, 0, 7] # movi