在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