Python程序:找出被切成多少个立方体
假设有多个维度为a,b和c的立方体,可以使用它们创建一个维度为axbxc的新盒子。a、b和c是两两互质的;gcd(a,b)=gcd(b,c)=gcd(c,d)= 1。我们必须通过一次切割将盒子切成两部分,如图所示。我们必须找出如果这样切割盒子,则被切割成两部分的立方体有多少个。我们提供了一个包含可能的三个维度的数组,并且我们必须从中找出我们的答案。
切割的方式是通过顶点P,Q和R的平面进行的。
因此,如果输入如下:n = 3, input_array = [[1,2,3],[4,2,5],[6,8,2]],则输出将为[5,18,37]。
给出了3个不同的实例,我们需要找出被切割的立方体数。如果以图示方式切割立方体,则分别切割5,16和37个立方体。
为了解决这个问题,我们将按照以下步骤进行:
- 输出:=一个新的列表
- for i在0到n范围内,执行
- a:= input_array[i,0]
- b:= input_array[i,1]
- c:= input_array[i,2]
- val := floor值 of(a * b + a * c + b * c – 1) / 2 mod 1000000007
- 将val插入输出的末尾
- 返回输出
示例
让我们看下面的实现以更好地理解−
from math import ceil
def solve(n, input_array):
output = []
for i in range(n):
a, b, c = input_array[i][0], input_array[i][1], input_array[i][2]
val = ((a * b + a * c + b * c - 1) // 2 % 1000000007)
output.append(val)
return output
print(solve(3, [[1, 2, 3], [4, 2, 5], [6, 8, 2]]))
输入
3,[[1,2,3],[4,2,5],[6,8,2]]
输出
[5,18,37]