亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求解,是要用到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在第幾層

例子:


正在回答

1 回答

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)


1 回復 有任何疑惑可以回復我~
#1

慕仔4072574 提問者

規律是怎么找到的,我思路不行
2019-11-13 回復 有任何疑惑可以回復我~
#2

悠哉悠哉3311454 回復 慕仔4072574 提問者

最里面的最大數是1的平方,第二圈是3的平方,第三圈是5的平方。已知一個數字n,那么他的平方根必然大于里面一層最大數的平方根,小于等于當前層的平方根,對其使用math.ceil方法返回一個偶數或者一個奇數,如果是偶數那么+1,如果是奇數那么這個奇數就是當前層最大數的平方根。知道了當前最大數的平方根,那么(n_sqrt + 1) / 2就是n在第幾層。其實代碼更好理解。。。
2019-11-15 回復 有任何疑惑可以回復我~
#3

慕后端3470754 回復 悠哉悠哉3311454

怎么運行出錯呢? 最后一行出錯了
2020-02-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

求解,是要用到Python數組嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號