国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

螺旋數字的python實現

2019-11-14 17:07:06
字體:
來源:轉載
供稿:網友

螺旋數字的算法簡單實現。

示例 5

01 02 03 04 05

16 17 18 19 06

15 24 25 20 07

14 23 22 21 08

13 12 11 10 09 

通過觀察,外部數字進行環繞一圈后向內收攏。

num-1

從程序出發,只要遞歸處理好4條邊即可。

num-2

同時為了避免頂點重復賦值,最后一個點讓后續的邊處理。

 

說明:處理暫時存儲在一個list對象中。

實現代碼:

def getlocIndex(l_x,l_y,steps):              return l_x  + l_y*stepsdef increaseSeedAndSteps(curSeed,cur_steps):       return (curSeed +1,cur_steps+1)def setTargetItem(targetlst,l_cur_x,l_cur_y,steps,curSeed):       loc_index = getlocIndex(l_cur_x, l_cur_y, steps)       targetlst[loc_index] = curSeeddef calc(targetlst,seed,l_x,l_y,nextsteps,steps):              current_seed = seed           loop_steps = nextsteps-1       if( nextsteps < 1 ):                            setTargetItem(targetlst, l_x, l_y,steps, current_seed)                            return       each_steps = 0       while(each_steps <= loop_steps):                                                                            setTargetItem(targetlst, l_x+each_steps, l_y,steps, current_seed)                      current_seed,each_steps = increaseSeedAndSteps(current_seed ,each_steps)       each_steps = 0       while(each_steps <= loop_steps):                          setTargetItem(targetlst, l_x+nextsteps, (l_y+each_steps), steps, current_seed)                                 current_seed,each_steps = increaseSeedAndSteps(current_seed ,each_steps)                 each_steps = 0       while(each_steps <= loop_steps):                                                                      setTargetItem(targetlst, l_x+nextsteps-each_steps, l_y+nextsteps, steps, current_seed)                        current_seed,each_steps = increaseSeedAndSteps(current_seed ,each_steps)                   each_steps = 0       while(each_steps <= loop_steps):                                                                      setTargetItem(targetlst, l_x, l_y+nextsteps-each_steps, steps, current_seed)                                       current_seed,each_steps = increaseSeedAndSteps(current_seed ,each_steps)       if(nextsteps-2 >= 0):              calc(targetlst,current_seed,l_x+1,l_y+1,nextsteps-2,steps)              

  

  

測試代碼:

def outputResult(targetlst,steps):       outBuffer = ''       for rowIndex in range(0, steps* steps):              if(rowIndex % steps == 0 and len(outBuffer) >0):                     

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌图县| 金寨县| 福泉市| 长宁县| 南郑县| 灌南县| 宜宾县| 公安县| 福州市| 柳河县| 广饶县| 阿合奇县| 灵川县| 闵行区| 南昌县| 宣城市| 黄陵县| 津市市| 新泰市| 绥芬河市| 北碚区| 垣曲县| 临澧县| 且末县| 洪湖市| 宁南县| 鄂托克旗| 彭州市| 西藏| 鱼台县| 长顺县| 娄底市| 滕州市| 景宁| 名山县| 克东县| 上栗县| 阜宁县| 武强县| 恩平市| 博白县|