回转的矩阵

 生成如下的矩阵:

001 002 003 004 005

016 017 018 019 006

015 024 025 020 007

014 023 022 021 008

013 012 011 010 009

Code:
  1. def l(row,col):  
  2.     return row,col-1  
  3. def r(row,col):  
  4.     return row,col+1  
  5. def u(row,col):  
  6.     return row-1,col  
  7. def d(row,col):  
  8.     return row+1,col  
  9. n=input('lines')  
  10. a=[[0 for j in range(n)] for i in range(n)]  
  11. #print a  
  12.   
  13. row=0  
  14. col=0  
  15. number=n*n  
  16. i=1  
  17. a[row][col]=1  
  18. i+=1  
  19. while i<=number:  
  20.     while(i<=number):  
  21.         row,col=r(row,col)  
  22.         print row,col  
  23.         try:  
  24.             if a[row][col]==0:  
  25.                 a[row][col]=i  
  26.                 i+=1  
  27.             else:  
  28.                 col=col-1  
  29.                 break  
  30.         except:  
  31.             col-=1  
  32.             break  
  33.           
  34.     while(i<=number):  
  35.         row,col=d(row,col)  
  36.         print row,col  
  37.         try:  
  38.             if a[row][col]==0:  
  39.                 a[row][col]=i  
  40.                 i+=1  
  41.             else:  
  42.                 row=row-1  
  43.                 break  
  44.         except:  
  45.             row-=1  
  46.             break  
  47.     while(i<=number):  
  48.         row,col=l(row,col)  
  49.         print row,col  
  50.         try:  
  51.             if a[row][col]==0:  
  52.                 a[row][col]=i  
  53.                 i+=1  
  54.             else:  
  55.                 col=col+1  
  56.                 break  
  57.         except:  
  58.             col+=1  
  59.             break  
  60.     while(i<=number):  
  61.         row,col=u(row,col)  
  62.         print row,col  
  63.         try:  
  64.             if a[row][col]==0:  
  65.                 a[row][col]=i  
  66.                 i+=1  
  67.             else:  
  68.                 row=row+1  
  69.                 break  
  70.         except:  
  71.             row+=1  
  72.             break  
  73.   
  74. #print a  
  75. for i in range(n):  
  76.     print ' '.join(['%03d'%x for x in a[i]])  

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值