C ++でキューブの合計がN(a ^ 3 + b ^ 3 =N)であるペア(a、b)をカウントします
数Nが与えられます。目標は、それらの立方体の合計がNになるような正の数の順序対を見つけることです。
これを行うには、方程式a 3 の解を見つけます。 + b 3 =N。ここで、aはNの立方根以下であり、bは(N-a 3 の立方根として計算できます。 。
例を挙げて理解しましょう。
入力
N=35
出力
Count of pairs of (a,b) where a^3+b^3=N: 2
説明
Pairs will be (2,3) and (3,2). 23+33=8+27=35
入力
N=100
出力
Count of pairs of (a,b) where a^3+b^3=N: 0
説明
No such pairs possible.
以下のプログラムで使用されているアプローチは次のとおりです
-
整数Nを取ります。
-
関数cubeSum(int n)はnを取り、キューブの合計をnとして順序対の数を返します。
-
ペアの初期変数カウントを0とします。
-
forループを使用してトラバースし、を見つけます。
-
a=1からnの立方根であるa<=cbrt(n)まで開始します。
-
bの3乗をn-pow(a、3)として計算します。
-
bをcbrt(bcube)として計算します
-
pow(b、3)==bcubeの場合。カウントを1ずつインクリメントします。
-
すべてのループの終わりに、カウントにはそのようなペアの総数が含まれます。
-
結果としてカウントを返します。
例
#include <bits/stdc++.h> #include <math.h> using namespace std; int cubeSum(int n){ int count = 0; for (int a = 1; a < cbrt(n); a++){ int bcube=n - (pow(a,3)); int b = cbrt(bcube); if(pow(b,3)==bcube) { count++; } } return count; } int main(){ int N = 35; cout <<"Count of pairs of (a,b) where a^3+b^3=N: "<<cubeSum(N); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of pairs of (a,b) where a^3+b^3=N: 2
-
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++の指定された値xに等しい2つのBSTからペアをカウントします
入力として2つの二分探索木と変数xが与えられます。目標は、ノードの値の合計がxに等しくなるように、各ツリーからノードのペアを見つけることです。 BST_1からノード1を取得し、BST_2からノード2を取得して、両方のデータ部分を追加します。 sum=xの場合。インクリメントカウント。 例を挙げて理解しましょう。 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 1 説明 −ペアは(8,6) 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 2 説明 −ペアは(5,15)と(4,16) 以下のプログラムで使用されているアプ