在Python中找到大小为N的圆环中距整数点到A和B的最小距离之和
假设我们有一个环,它是由从1到N的几个数字组成的。我们也有两个数字A和B。现在,我们可以站在任何地方(例如x),并根据的总和执行计数操作。距离(例如Z = X到A的距离+ X到B的距离)。我们必须选择X以使Z最小。最后返回Z的值。我们必须记住X不会与A和B相同。
因此,如果输入为N = 30,A = 10,B = 20,那么通过选择X = 15,输出将为10,从X到A的距离为5,从X到B的距离为5。 ,总距离= 5 + 5 = 10。
为了解决这个问题,我们将遵循以下步骤-
如果a> b为非零,则
交换a和b
clock_wise_dist:= b-a
counter_clock_wise_dist:=(a-1)+(n-b + 1)
minimum_dist:= clock_wise_dist,counter_clock_wise_dist的最小值
如果minimum_dist与1相同,则
返回3
返回minimum_dist
例
让我们看下面的实现以更好地理解-
def get_min_z(n, a, b):if (a > b):
a, b = b, a
clock_wise_dist = b - a
counter_clock_wise_dist = (a - 1) + (n - b + 1)
minimum_dist = min(clock_wise_dist, counter_clock_wise_dist)
if (minimum_dist == 1):
return 3
return minimum_dist
n = 30
a = 10
b = 20
print(get_min_z(n, a, b))
输入值
30, 10, 20
输出结果
10
以上是 在Python中找到大小为N的圆环中距整数点到A和B的最小距离之和 的全部内容, 来源链接: utcz.com/z/338438.html