国产探花免费观看_亚洲丰满少妇自慰呻吟_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):                     

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 慈溪市| 锦屏县| 军事| 八宿县| 民勤县| 和田市| 浦县| 施秉县| 阿勒泰市| 邵阳县| 石台县| 沂源县| 铁力市| 龙岩市| 上高县| 涿州市| 丹凤县| 柳江县| 东平县| 青河县| 镇江市| 威宁| 吉木萨尔县| 边坝县| 富蕴县| 澄城县| 东乌珠穆沁旗| 扎兰屯市| 东平县| 灵武市| 雅安市| 原阳县| 甘泉县| 洪江市| 甘洛县| 保康县| 根河市| 邵东县| 无极县| 澎湖县| 杨浦区|