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

配列に最小数を追加して、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として初期化されます。
配列をトラバースする
1は奇数で、変数は1に変更されました。
2は偶数です
3は奇数で、変数は0に変更されました。
4は偶数です
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;
}

  1. C++を使用して配列を適切にするために削除する必要のある要素の最小数。

    問題の説明 配列「arr」が与えられた場合、タスクは、配列を適切にするために削除する要素の最小数を見つけることです。 シーケンスa1、a2、a3。 。 .anは、各要素a [i]に対して、a [i] + a [j]が2の累乗であるような要素a[j](iはjと等しくない)が存在する場合に適切と呼ばれます。 arr1[] = {1, 1, 7, 1, 5} 上記の配列で要素「5」を削除すると、配列は適切な配列になります。この後、arr [i] +arr[j]の任意のペアは2の累乗です- arr [0] + arr [1] =(1 + 1)=2この2の累乗 arr [0] + arr [

  2. 合計がC++で均等になるように、配列に最小数を追加しますか?

    いくつかの番号を持つ配列があるとします。要素の合計を均等にするために、それに追加される数値の最小数を指定する必要があります。数値は0より大きくなければなりません。したがって、要素の合計が奇数の場合は1を加算しますが、合計がすでに偶数の場合は2を加算して偶数にします。 アルゴリズム addMinNumber(arr) begin    s := 0    for each element e from arr, do       s := e + s    done    if s i