在 C++ 中找出給定 x 和 y 時 x^(y^2) 或 y^(x^2) 中的最大值


在這個問題中,我們給定兩個值 x 和 y。我們的任務是找出給定 x 和 y 時 x^(y^2) 或 y^(x^2) 中的最大值。

讓我們舉個例子來理解這個問題:

輸入:x = 4, y = 3

輸出:3^(4^2)

解釋:

x^(y^2) = 4^(3^2) = 4^9 = 262144
y^(x^2) = 3^(4^2) = 3^16 = 43046721

解決方案

一種方法是計算這兩個值,然後列印兩個值中的最大值。但是當值很大時,這種方法不起作用。

一種簡單易行的方法是使用自然對數 (ln),這將使求解更容易。

ln(x^(y^2)) = (y^2) * ln(x)

ln(y^(x^2)) = (x^2) * ln(y)

這裡,值與 x 和 y 不成正比。因此,讓我們將值除以 (x^2)*(y^2)。這使得值變為:

ln(x^(y^2)) / (x^2)*(y^2) = ln(x) / (x^2)

ln(y^(x^2)) / (x^2)*(y^2) = ln(y)/ (y^2)

這些值與結果值成反比。

如果 x > y,則 x^(y^2) < y^(x^2)

程式演示了我們解決方案的工作原理:

示例

線上演示

#include <iostream>
using namespace std;

bool checkGreaterVal(int x, int y) {
   
   if (x > y)
      return false;
   else
      return true;
}

int main() {
   
   int x = 3;
   int y = 5;
   cout<<"The greater value is ";
   if(checkGreaterVal(x, y))
      cout<<x<<"^("<<y<<"^2)";
   else
      cout<<y<<"^("<<x<<"^2)";
   return 0;
}

輸出

The greater value is 3^(5^2)

更新於:2021年1月25日

74 次檢視

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.