Python程序找出球在圆管中碰撞多少次
假设在一个圆管中有n个球。管子长100米,最初,管子中的每个球都距离我们称为起点的点i米。现在球开始在管内以不同方向以圆形顺序行进。球在管内以每秒0.1米的速度行进。当两个球在一个点相遇时,就会发生碰撞,球会改变它们的行进方向。如果这个过程持续很长时间,比如说10^9+6秒;我们必须找出球发生碰撞的次数。球到起点的初始距离作为输入给出。
因此,如果输入类似于input_array=[0,10],那么输出将是400000
有两个球,它们与起跑线的初始距离作为输入提供给我们。如果他们的方向相同,他们将永远不会发生碰撞。但是,如果它们的方向不同,它们有时会发生碰撞。一个球将与另一个球碰撞400000次。
示例
让我们看看以下实现以获得更好的理解-
def solve(input_array):
input_array.sort()
size = len(input_array)
lap_count = (10**5)*2
output = 2*lap_count*(size//2)*(size - size//2)
stop = 0
for i in range(size - 1):
if stop != 1:
if input_array[i] + 1 == input_array[i+1]:
output+=2
stop = 1
else:
stop = 0
else:
stop = 0
return output
print(solve([0, 10]))输入
[0, 10]输出结果
400000
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短