求解,是要用到Python數組嗎?
1.有如下數字:
05 04 03
06 01 02
07 08 09
像這樣擴展到最多包含前25個數字:
17 16 15 14 13
18 05 04 03 12
19 06 01?02 11
20 07 08 09 10
21 22 23 24 25
您可能會很容易注意到,第一層(也是最內層01)僅包含一個數字(),第二層-緊鄰其周圍-包含8個數字(02-09范圍內的數字),依此類推。
您的任務是創建一個給定數字的layers(n)函數,該函數返回n在第幾層
例子:
2019-11-13
import math
def layers(n):
? n_sqrt = math.ceil(math.sqrt(n))
? if (n_sqrt % 2 == 0):
? ? n_sqrt = n_sqrt + 1
? layer = (n_sqrt + 1) / 2
? return layer
print layers(88)