我有三个整数:A
,B
,C
我需要找到最接近X
的整数C
。如果N
是任何自然数,则A
,B
和X
应满足以下等式:
A*B*X=sqrt(N)
你能帮忙算法吗?
答案 0 :(得分:1)
我们可以对N
的所有可能值进行二元搜索,并比较X = sqrt(N)/(A*B))
的相应值,以决定进行搜索的哪一半。
python中可能的实现可能是 -
A = 5
B = 2
C = 3
left = -10000000000000
right = 10000000000000 #assuming that's the maximum value N can take
while right-left>1:
N = (left+right)//2
X = N**.5/(A*B)
if X>C:
right = N
else:
left = N
N = (left+right)//2
print(N)
在这种情况下输出:900