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个立方体。
为了解决这个问题,我们将遵循以下步骤:
- output := 一个新的列表
- 对于i从0到n的范围,执行以下操作
- a := input_array[i, 0]
- b := input_array[i, 1]
- c := input_array[i, 2]
- val := (a * b + a * c + b * c - 1) / 2向下取整 对 1000000007 取模
- 在output的末尾插入val
- 返回output
示例
让我们看看以下实现,以便更好地理解:
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]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP