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