在x ^(y ^ 2)或y ^(x ^ 2)中找到最大值,其中x和y在C ++中给出

在这个问题上,我们给了两个值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<<"较大的值是 ";

   if(checkGreaterVal(x, y))

      cout<<x<<"^("<<y<<"^2)";

   else

      cout<<y<<"^("<<x<<"^2)";

   return 0;

}

输出结果
较大的值是 3^(5^2)

以上是 在x ^(y ^ 2)或y ^(x ^ 2)中找到最大值,其中x和y在C ++中给出 的全部内容, 来源链接: utcz.com/z/329743.html

回到顶部