给定正整数x和n,找出一个整数y,使得y^n最接近x,注意y^n可能小于、等于或者大于x。 输入描述 有多组测试数据,每组测试数据是由空格分隔的两个正整数x(1<=x<=1000000)和n(1<=n<=9),当x和n都为0时表示输入的结束。
时间: 2024-03-17 18:43:43 浏览: 168
从输入的一批正整数中求出最大值、最小值和平均值,输入0结束数据的输入
好的,让我来回答你的问题。这是一个经典的数学问题,可以使用二分查找来解决。具体来说,我们可以从1到x进行二分查找,找到一个最小的数y,使得y^n大于或等于x。这个数y就是我们要找的答案。
下面是一份可能的 Python 代码实现:
```python
while True:
x, n = map(int, input().split())
if x == 0 and n == 0:
break
# 二分查找
left, right = 1, x
while left <= right:
mid = (left + right) // 2
if mid ** n >= x:
right = mid - 1
else:
left = mid + 1
# 输出结果
if (left ** n - x) <= (x - right ** n):
print(left)
else:
print(right)
```
希望这可以帮助你解决问题!
阅读全文