无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3083|回复: 0
打印 上一主题 下一主题

如何实现如本贴中正方形循环数字的打印?

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-17 23:29:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
01 02 03 04 05 06 07 08 09
32 33 34 35 36 37 38 39 10
31 56 57 58 59 60 61 40 11
30 55 72 73 74 75 62 41 12
29 54 71 80 81 76 63 42 13
28 53 70 79 78 77 64 43 14
27 52 69 68 67 66 65 44 15
26 51 50 49 48 47 46 45 16
25 24 23 22 21 20 19 18 17

无聊中想到了上图这样的一个正方形图形,我想用批处理实现一下上图的打印,字符规则为自左上角开始一个数字,顺时针不断循环,直到缩小至图形中心为止。起始数字和正方形外围的长度手动输入。
可先不必考虑各种复杂情况,仅考虑上图的打印思路。。。
  1. @echo off & color e & SETLOCAL ENABLEDELAYEDEXPANSION
  2. mode con lines=30 cols=80
  3. set /p num=请输入开始数:
  4. set /p row=请输入总行数:
  5. set /a n=%num%+%row%-1
  6. echo.&echo.
  7. :lp
  8. if %num% leq %n% (
  9. set temp=    %num%
  10. set num=!temp:~-4!
  11. set /p=!num!<nul
  12. set /a num+=1
  13. goto lp
  14. )
  15. echo.
  16. set /a print1=%row%-2
  17. set /a sum=%n%*2+%row%*3-3
  18. set /a space=4*%row%-8
  19. for /l %%a in (1,1,%print1%) do (
  20. set /a left=!sum!-!num!
  21. set temp=    !left!
  22. set left=!temp:~-4!
  23. set /p=!left!<nul
  24. for /l %%b in (1,1,%space%) do (
  25.   set /p= <nul
  26. )
  27. set num=    !num!
  28. set num=!num:~-4!
  29. echo !num!
  30. set /a num+=1
  31. )
  32. set /a print2=%n%+%row%*2-2
  33. set /a print3=%print2%-%row%+1
  34. for /l %%a in (%print2%,-1,%print3%) do (
  35. set temp=    %%a
  36. set temp=!temp:~-4!
  37. set /p=!temp!<nul
  38. )
  39. pause>nul
  40. ::
复制代码
以上代码可打印如下图型


[ 本帖最后由 0428_hai 于 2011-4-17 23:31 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-1 11:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表