📅  最后修改于: 2023-12-03 15:27:21.305000             🧑  作者: Mango
本程序基于以下思路:将问题转化为求这样一个数 x,当 x^n 大于等于 a^n 和 b^n 时,x 为所求。采用二分法求解,每次将 x 的值取两数之间的中值,缩小一半的搜索范围,直到找到满足条件的 x。
def find_max(a, b, n):
"""
在 a^n 和 b^n 之间找到更大的值
:param a: 底数 a
:param b: 底数 b
:param n: 幂 n
:return: 满足条件的 x 值
"""
left = max(a, b)
right = 10**10 # 可根据实际情况设定上限
while left < right:
mid = (left + right + 1) // 2
if pow(mid, n) >= max(a**n, b**n):
right = mid - 1
else:
left = mid
return left
a = 2
b = 3
n = 3
result = find_max(a, b, n)
print(result) # 输出 3
注:本程序假设 a 和 b 均为正整数。如果 a 或 b 有负数,可将其取绝对值后再进行计算。