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

奇数回発生回数を見つけるためのC/C ++プログラム?


このプログラムでは、配列内で奇数回発生している数値を取得する方法を確認します。多くの異なるアプローチがあります。最も簡単なアプローチの1つは、ZOR操作を実行することです。数値がそれ自体とXORされる場合、それは0になります。したがって、数値が偶数回XORされる場合、それは0になり、そうでない場合、数値自体になります。

このソリューションには1つの問題があります。複数の要素の出現回数が奇数の場合、そのうちの1つが返されます。

アルゴリズム

getNumOccurredOdd(arr、n)

begin
   res := 0
   for each element e from arr, do
      res := res XOR e
   done
   return res
end
を実行します。

#include <iostream>
using namespace std;
int getNumOccurredOdd(int arr[], int n) {
   int res = 0;
   for (int i = 0; i < n; i++)
      res = res ^ arr[i];
   return res;
}
int main() {
   int arr[] = {3, 4, 6, 5, 6, 3, 5, 4, 6, 3, 5, 5, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << getNumOccurredOdd(arr, n) << " is present odd number of times";
}

出力

6 is present odd number of times

  1. 数の一意の素因数の積を見つけるためのC/C ++プログラム?

    固有の素因数 素数でもある数の因数です。この問題では、数のすべての固有の素因数の積を見つける必要があります。 素数 は、数と1の2つの要素しかない数です。 ここでは、ある数の一意の素因数の積を計算するための最良の方法を見つけようとします。問題をより明確にするために例を見てみましょう。 n =1092と言う数があり、これの一意の素因数の積を取得する必要があります。 1092の素因数は2、3、7、13であり、製品は546です。 2これを見つける簡単なアプローチは、数のすべての因子を見つけて、その因子が素数であるかどうかを確認することです。次に、それを数値に乗算してから、乗算変数を返します。

  2. 三角マッチ棒番号のC/C ++プログラム?

    マッチ棒を使用して作成された三角形は、正三角形を作成するように配置されます。これは、三角形のマッチ棒番号と呼ばれます。三角形のマッチ棒の数は、マッチ棒を三角形にするために必要なマッチ棒の数です。 この問題では、数はマッチ棒のピラミッドXの床であり、私たちのタスクは、x階のマッチ棒のピラミッドを形成するために必要なマッチ棒の最小総数を印刷するプログラムを作成することです。 概念をより明確にする例を見てみましょう。 Input: 7 Output: 84 説明 これは三角数の拡張です。整数Xの場合、必要なマッチ棒はX番目の三角数の3倍、つまり(3 * X *(X + 1))/ 2になります。