C ++で[a、b]の範囲の合計を持つ配列内のトリプレットの数をカウントします
範囲[a、b]を定義するために、整数の配列Arr[]と2つの変数aおよびbが与えられます。目標は、合計がこの範囲[a、b]の間にあるトリプレットの数を見つけることです。
これを行うには、3つのforループを使用します。 arr [i] + arr [j] + arr [k]>=aおよびarr[i]+ arr [j] + arr [k] <=bの場合、カウントをインクリメントします。ここで、0 <=i <=n-2、i
例を挙げて理解しましょう。
入力 − arr [] ={1,2,3,4,5}、N =5、L =2、R =8
出力 −トリプレットの数− 4
説明 −
入力 − arr [] ={2,2,2,2,2}、N =5、L =2、R =5
出力 −トリプレットの数− 0
説明 −
すべてのトリプレットの合計は6になります。これは[2,5]
トリプレットの合計:0
乱数で初期化された整数配列Arr[]を使用します。
範囲[L、R]を定義するために変数LとRを取ります。 NはArr[]の長さを格納します。
関数countTriplets(int arr []、int n、int a、int b)は、配列、その長さおよび範囲の変数を入力として受け取り、合計がこの範囲にあるトリプレットを返します。
トリプレットの数として、初期変数カウントを0とします。
初期変数の合計を各トリプレットの合計として取ります。最初は0です。
トリプレットの各要素に対して3つのforループを使用して配列をトラバースします。
0 <=i
sum =arr [i] + arr [j] +arr[k]を計算します。 a <=sum <=bの場合、カウントをインクリメントします。
すべてのループの終わりに、カウントには、条件を満たすトリプレットの総数が含まれます。
必要な結果としてカウントを返します。
上記のコードを実行すると、次の出力が生成されます-Triplets with sum>=2 and sum<=8
(1,2,3) → 6
(1,2,4) → 7
(1,2,5) → 8
(1,3,4) → 8
Total triplets: 4
以下のプログラムで使用されているアプローチは次のとおりです
例
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[],int n,int a,int b){
int count = 0;
int sum=0;
for (int i = 0; i < n-2; i++){
for (int j = i+1; j < n-1; j++){
for (int k = j+1; k < n; k++){
sum=arr[i]+arr[j]+arr[k];
if ( sum>=a && sum<=b) //check{
count++;
// cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
}
}
}
}
return count;
}
int main(){
int Arr[]={ 5,4,3,6,8,2 };
int L=9;
int R=15;
int N=6; //length of array
cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N,L,R);
return 0;
}
出力
Number of triplets : 14
-
Xとの合計がC++のフィボナッチ数であるノードをカウントします
ノードの重みを数値として持つ二分木を指定します。目標は、その数がフィボナッチ数であるような重みを持つノードの数を見つけることです。フィボナッチ数列の数は次のとおりです。0、1、1、2、3、5、8、13…。n番目の数はの合計です。 (n-1)番目と(n-2)番目。重みが13の場合、それはフィボナッチ数であるため、ノードがカウントされます。 例 入力 temp=1。値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes whose sum with X is a Fibonacci number are: 3 説明 we are given with
-
C ++の合計配列パズル?
ここでは、配列に関連する1つの興味深い問題を確認します。 n個の要素を持つ配列があります。 n個の要素の別の配列を作成する必要があります。ただし、2番目の配列のi番目の位置は、i番目の要素を除く最初の配列のすべての要素の合計を保持します。そして、1つの制約は、この問題では減算演算子を使用できないことです。 減算演算を使用できれば、すべての要素の合計を取得し、最初の配列のi番目の要素を減算して、2番目の配列のi番目の場所に格納することで、この問題を簡単に解決できます。 ここでは、毎回要素を追加することでこれを解決し、0..n-1のiについては、位置iの要素を無視します。ポイントを得るためのア