1078: 算步数
时间限制: 1 Sec 内存限制: 32 MB
提交: 39 解决: 13
[提交][状态][讨论版]
题目描述
给你坐标轴上的两个点A和B,请问从A走到B最少需要多少步?
我们对走的每一步的步长作出如下限制:
第一步和最后一步的步长必须是1,其他的任意一步的步长必须比前一步的步长小1、大1或相等。
输入
输入包含多组测试数据。每组输入两个整数A和B(0<=A<=B<2^31)。
输出
对于每组输入,输出从A走到B最少需要多少步。
样例输入
45 48 45 49 45 50
样例输出
3 3 4
python
from math import sqrt
while True:
sums = 0
a, b = list(map(int, input().split()))
n = b - a
if n==0:
print(0)
continue
s = int(sqrt(n))
sums += 2 * s - 1
if n - s * s > 0:
if n - s * s <= s:
sums += 1
else:
sums += 2
print(sums)