螺旋数字的python实现,螺旋python实现

本文这里通过示例给大家简单对比分析了PHP
数组current和next的用法,虽然示例很简单,但是对于我们理解current和next非常有帮助,这里推荐给大家。

螺旋数字的python实现,螺旋python实现

螺旋数字的算法简单实现。

示例 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 

通过观察,外部数字进行环绕一圈后向内收拢。

def getlocIndex(l_x,l_y,steps): return l_x + l_y*steps def
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] =
curSeed def 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):
                     print('%sn' % (outBuffer))              
                     outBuffer = ''
              outBuffer = outBuffer + '%02d ' %(targetlst[rowIndex])
       print('%sn' % (outBuffer))               


import traceback
try:
       steps =5

       targetlst = list()
       [ targetlst.append(0) for nTry in range(0,steps* steps)]       

       calc(targetlst, 1,0,0,steps-1,steps)
       outputResult(targetlst, steps)


except Exception as exc:           
       print("app catch: %sn" % ( exc));   
       info = traceback.format_exc()
       print(info)            
print("done")

  

螺旋数字的算法简单实现。 示例 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 通过观察…

1.current

<?php
 $transport = array('foot', 'bike', 'car', 'plane');
 $mode = current($transport); //$mode = 'foot';
 $mode = next($transport);   // $mode ='bike';
 $mode = current($transport); //$mode = 'bike';
 $mode = prev($transport);   // $mode ='foot';
 $mode = end($transport);    // $mode ='plane';
 $mode = current($transport); //$mode = 'plane';
 ?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图