C++でa^2 + b ^ 2 =c^2および1<=a <=b <=c <=nとなるようにトリプレット(a、b、c)の数を数えます
-
a 2 + b 2 =c 2
-
1 <=a <=b <=c <=n
これを行うには、1 <=a<=nと1<=b<=nの値に対して2つのループを実行します。それに応じてcを計算し(c =sqrt(a2 + b2))、条件1と2の両方が満たされた場合はカウントをインクリメントします。
例を挙げて理解しましょう。
入力 − n =5
出力 −トリプレットの数− 1
説明 −
for a=3, b=4 and c=5 both conditions are met.
入力 − n =3
出力 −トリプレットの数− 0
説明 −
条件1および2を満たすそのようなトリプレットはありません。
以下のプログラムで使用されているアプローチは次のとおりです
-
整数Nは、範囲[1、N]の最後の制限を格納します。
-
関数countTriplets(int n)はnを取り、a 2 の条件を満たすトリプレットの数を返します。 + b 2 =c 2 および1<=a <=b <=c <=n
-
変数countは、そのようなトリプレットの数を格納します。最初は0です。
-
変数sumは、aとbの2乗の合計を格納します。
-
a=1からnおよびb=aからnから始めて、sum =a * a + b * bおよびcを合計の平方根(sqrt(sum))として計算します。
-
計算されたcの値が、c * c==sumおよびb<=c &&c <=nの場合(条件1と2の両方が満たされます)。
-
現在のa、b、cとしてのインクリメントカウントは、両方の条件を満たす。
-
a=nおよびb=nになるまでこれを実行します。最終的に、カウントには、条件を満たすようなトリプレットがいくつか含まれます。
-
必要な結果としてカウントを返します。
例
#include <bits/stdc++.h> using namespace std; int countTriplets(int n){ int count = 0; int a,b,c; a=b=c=1; int sum=0; for (a = 1; a <= n; a++) //1<=a<=n{ for (b = a; b <= n; b++) //1<=a<=b<=n{ sum = a*a + b*b; //a^2 + b^2 =c^2 c = sqrt(sum); if (c * c == sum && b<=c && c<=n) //check 1<=a<=b<=c<=n{ count++; cout<<endl<<"a :"<<a<<" b :"<<b<<" c :"<<c; //to print triplets } } } return count; } int main(){ int N = 15; cout <<endl<< "Number of triplets : "<<countTriplets(N); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Number of triplets : a :3 b :4 c :5 a :5 b :12 c :13 a :6 b :8 c :10 a :9 b :12 c :154 Number of triplets : 4
-
C ++でK%p =0およびq%K=0となる最小数Kを見つけます
2つの整数PとQがあるとします。KmodP=0とQmodK =0のように、最小の数Kを見つける必要があります。それ以外の場合は-1を出力します。したがって、PとQが2と8の場合、Kは2になります。2mod2 =0、8モード2=0として。 Kを可能にするには、QをPで割り切れる必要があります。したがって、P mod Q =0の場合はPを出力し、そうでない場合は-1を出力します。 例 #include<iostream> using namespace std; int getMinK(int p, int q) { if (q % p == 0) &nbs
-
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