ホームページ >バックエンド開発 >C++ >C プログラミングでは、配列の合計が偶数になるように配列に最小の数値を加算します。

C プログラミングでは、配列の合計が偶数になるように配列に最小の数値を加算します。

王林
王林転載
2023-08-25 17:41:061137ブラウズ

C プログラミングでは、配列の合計が偶数になるように配列に最小の数値を加算します。

配列が与えられた場合、配列の合計が偶数になるように、最小の数値 (0 より大きくなければなりません) を配列に追加します。

入力- 1 2 3 4.

出力- 2

説明 - 配列合計は 10 なので、

最小の数値 2 を加算して合計を均等にします。

方法 1: 配列のすべての要素の合計を計算し、その合計が偶数であるかどうかを確認し、最小数の 2 を追加し、そうでない場合は最小数の 1 を追加します。 。

入力- 1 2 3 4,

出力- 2

説明-配列の合計は 10 なので、 最小の数値 2 を加算して合計を均等にします。

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4};
   int n=4;
   int sum=0;
   for (int i = 0; i <n; i++) {
      sum+=arr[i];
   }
   if (sum % 2==0) {
      cout <<"2";
   } else {
      cout <<"1";
   }
   return 0;
}

方法 2 - 配列内の奇数要素の数を計算します。奇数の出現回数が偶数の場合は 2 を返し、それ以外の場合は 1 を返します。

入力 - 1 2 3 4 5

出力 - 1

説明- いいえ。配列内の値は 3

最小値 1 を加算して合計を均等にします。

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4,5};
   int n=5;
   int odd = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2!=0) {
         odd += 1;
      }
   }
   if (odd % 2==0) {
      cout <<"2";
   } else {
      cout <<"1";
   }
   return 0;
}

メソッド 3 - フラグ変数 (0 に初期化) を受け取ります。配列内で奇数の要素が見つかった場合は常に、ブール変数に対して NOT(!) 演算を実行します。この論理演算子は、フラグ変数の値を反転します (値が 0 の場合は変数を 1 に変換し、その逆も同様です)。

入力- 1 2 3 4 5

出力- 1

説明-変数の初期化は0です。

配列を走査します p>

1 は奇数であり、変数は 1 ずつ変化します。

2 は偶数です。

3 は奇数です。変数は 0 に変わります。

4 は偶数です。

4 p>

5 は奇数です。変数は 1 になります。

変数の値が 1 の場合、それは存在することを意味します。は奇数の要素の奇数であるため、合計が偶数である要素の最小数はプラス 1 になります。

それ以外の場合、最小数量は 2 です。

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4,5};
   int n=5;
   bool odd = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2!=0) {
         odd = !odd;
      }
   }
   if (odd) {
      cout <<"1";
   } else {
      cout <<"2";
   }
   return 0;
}

以上がC プログラミングでは、配列の合計が偶数になるように配列に最小の数値を加算します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。