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

C ++の合計配列パズル?


ここでは、配列に関連する1つの興味深い問題を確認します。 n個の要素を持つ配列があります。 n個の要素の別の配列を作成する必要があります。ただし、2番目の配列のi番目の位置は、i番目の要素を除く最初の配列のすべての要素の合計を保持します。そして、1つの制約は、この問題では減算演算子を使用できないことです。

減算演算を使用できれば、すべての要素の合計を取得し、最初の配列のi番目の要素を減算して、2番目の配列のi番目の場所に格納することで、この問題を簡単に解決できます。

ここでは、毎回要素を追加することでこれを解決し、0..n-1のiについては、位置iの要素を無視します。ポイントを得るためのアルゴリズムを見てみましょう。

アルゴリズム

sumArray(arr、n)

begin
   define an array called res of size n
   for all elements i in arr, do
      sum := 0
      for all elements j in arr, do
         if i and j are not same, then
            sum := sum + arr[j]
         end if
      done
      res[i] = sum
   done
   return res
end

#include<iostream>
using namespace std;
void printArray(int arr[], int n) {
   for(int i = 0; i<n; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;
}
void sumArray(int arr[], int resArr[], int n) {
   for(int i = 0; i<n; i++) {
      int sum = 0;
      for(int j =0; j<n; j++ ) {
         if(i != j) {
            sum += arr[j];
         }
      }
      resArr[i] = sum;
   }
}
main() {
   int myArr[7] = {5, 4, 7, 6, 9, 2, 3};
   int resArr[7];
   cout << "Initial Array: ";
   printArray(myArr, 7);
   sumArray(myArr, resArr, 7);
   cout << "Final Array: ";
   printArray(resArr, 7);
}

出力

Initial Array: 5 4 7 6 9 2 3
Final Array: 31 32 29 30 27 34 33

  1. C++合計配列パズル

    配列 同じデータ型の複数の要素を格納するデータ構造です。値のセット全体を一度に保存できます。ただし、その長さは事前に定義する必要があります。 この合計配列パズルでは、nと言う明確なサイズの配列A1が与えられます。このパズルを解くために、位置が使用されている要素を除く配列のすべての要素の合計を格納するS1という配列を作成します。たとえば、S1 [3]が計算されている場合、位置4の要素を除くA1のすべての要素の合計が求められます。 例- Array A1 = {1,2,3,4,6} Output S1 = {15,14,13,12,10} 説明 −合計配列を計算するには、初期配列の各要素を合計

  2. C ++の製品配列パズル?

    ここでは、配列に関連する1つの興味深い問題を確認します。 n個の要素を持つ配列があります。 n個の要素の別の配列を作成する必要があります。ただし、2番目の配列のi番目の位置は、i番目の要素を除く最初の配列のすべての要素の積を保持します。そして、1つの制約は、この問題では除算演算子を使用できないことです。 除算、演算を使用できれば、すべての要素の積を取得し、最初の配列のi番目の要素を除算して、2番目の配列のi番目の場所に格納することで、この問題を簡単に解決できます。 ここでは、2つの別々の配列を作成することでこれを解決しています。左右。 left [i]は、array[i]を除くarray[