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

C++でx^yとy^xの大きい方を検索します


この問題では、xとyの2つの数が与えられます。私たちの仕事は、 x^yとy^xの大きい方を見つけることです。

問題の説明: 問題は単純です。天気xのy乗がyのx乗よりも大きいことを確認する必要があります。

問題を理解するために例を見てみましょう。

入力: x =4、y =5

出力: 1024

説明:

x ^ y =4 ^ 5 =1024
y ^ x =5 ^ 4 =625

ソリューションアプローチ

問題の解決策は簡単です。 x^yとy^xの値を見つけて、両方の最大値を返す必要があります。

問題を解決するためのより数学的に簡単な方法があります。それはログを取ることです。だから、

x ^ y =y * log(x)

これらの値は簡単に計算できます。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;

int main() {
   
   double x = 3, y = 7;
   double ylogx = y * log(x);
   double xlogy = x * log(y);
   
   if(ylogx > xlogy)
      cout<<x<<"^"<<y;
   else if (ylogx < xlogy)
      cout<<y<<"^"<<x;
   else
      cout<<"None";
   cout<<" has greater value";
   return 0;
}

出力

3^7 has greater value

  1. C ++を使用して、AとBの間のN個の幾何平均を見つけます。

    3つの整数A、B、およびNがあるとします。AとBの間のN個の幾何平均を見つける必要があります。A=2、B =32、およびN =3の場合、出力は4、8、16 タスクは単純です。等比数列にN個の要素を挿入する必要があります。ここで、AとBはそのシーケンスの最初と最後の項です。 G1、G2、…と仮定します。 Gnはn個の幾何平均です。したがって、シーケンスはA、G1、G2、…になります。 Gn、B。したがって、Bはシーケンスの(N + 2)番目の項です。したがって、これらの式を使用できます- $$ B =A * R ^ {N + 1} $$ $$ R ^ {N + 1} =\ frac {B

  2. C ++を使用して、AとBの間のN算術平均を見つけます。

    3つの整数A、B、およびNがあるとします。AとBの間のNの算術平均を見つける必要があります。A=20、B =32、およびN =5の場合、出力は22、24、26、28、 30 タスクは単純です。等差数列にN個の要素を挿入する必要があります。ここで、AとBはそのシーケンスの最初と最後の項です。 A1、A2、…と仮定します。 anはnの算術平均です。したがって、シーケンスはA、A1、A2、…になります。 An、B。したがって、Bはシーケンスの(N + 2)番目の項です。したがって、これらの式を使用できます- $$ B =A + \ lgroup N + 2-1 \ rgroup * d $$