C++で指定された値に合計されるトリプレットを見つけます
このチュートリアルでは、合計が指定された数に等しい配列内のトリプレットを見つけるプログラムを作成します。
問題を解決するための手順を見てみましょう。
-
ダミーデータを使用してアレイを作成します。
-
配列の最後まで繰り返す3つの要素に対して3つの内部ループを記述します。
-
3つの要素を追加します。
-
合計を指定された数と比較します。
-
両方が等しい場合は、要素を印刷してループを解除します。
-
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; bool findTriplet(int arr[], int arr_size, int sum) { for (int i = 0; i < arr_size - 2; i++) { for (int j = i + 1; j < arr_size - 1; j++) { for (int k = j + 1; k < arr_size; k++) { if (arr[i] + arr[j] + arr[k] == sum) { cout << arr[i] << " " << arr[j] << " " << arr[k] << endl; return true; } } } } return false; } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; findTriplet(arr, 7, 12); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます。
1 4 7
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
xとその桁の合計がC++で指定されたnと等しくなるような数xを見つけます
ここで、1つの問題が発生します。ここで、数値nを取得する場合、x +桁の合計xが指定された数値nと同じになるように、xなどの別の値を見つける必要があります。 nの値が21であると仮定します。このプログラムは、15+桁の合計15、つまり15 + 1 + 5 =21=nとして数値x=15を返します。 この問題を解決するには、単純なアプローチに従う必要があります。 1からnまで繰り返し、各繰り返しで、数値とその桁の合計の合計が数値と同じであるかどうかを確認し、停止します。それ以外の場合は続行します。 例 #include<iostream> using namespace std; i
-
C++で指定された値になるすべての一意のトリプレット
ここで、1つの興味深い問題が発生します。いくつかの要素を持つ配列があります。 1つの合計値が与えられます。私たちのタスクは、配列からトリプレットを見つけることであり、その合計は指定された合計と同じです。配列が{4、8、63、21、24、3、6、1、0}であり、合計値がS =18であると仮定します。したがって、トリプレットは{4、6、8}になります。複数のトリプレットが存在する場合は、それらすべてが表示されます。 アルゴリズム getTriplets(arr、n、sum)- トリプレットを格納するための1つの配列の定義を開始します。たとえば、trip_arrは、一意のトリプレットを格納するため