无忧启动论坛
标题:
如何实现如本贴中正方形循环数字的打印?
[打印本页]
作者:
0428_hai
时间:
2011-4-17 23:29
标题:
如何实现如本贴中正方形循环数字的打印?
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
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
无聊中想到了上图这样的一个正方形图形,我想用批处理实现一下上图的打印,字符规则为自左上角开始一个数字,顺时针不断循环,直到缩小至图形中心为止。起始数字和正方形外围的长度手动输入。
可先不必考虑各种复杂情况,仅考虑上图的打印思路。。。
@echo off & color e & SETLOCAL ENABLEDELAYEDEXPANSION
mode con lines=30 cols=80
set /p num=请输入开始数:
set /p row=请输入总行数:
set /a n=%num%+%row%-1
echo.&echo.
:lp
if %num% leq %n% (
set temp= %num%
set num=!temp:~-4!
set /p=!num!<nul
set /a num+=1
goto lp
)
echo.
set /a print1=%row%-2
set /a sum=%n%*2+%row%*3-3
set /a space=4*%row%-8
for /l %%a in (1,1,%print1%) do (
set /a left=!sum!-!num!
set temp= !left!
set left=!temp:~-4!
set /p=!left!<nul
for /l %%b in (1,1,%space%) do (
set /p= <nul
)
set num= !num!
set num=!num:~-4!
echo !num!
set /a num+=1
)
set /a print2=%n%+%row%*2-2
set /a print3=%print2%-%row%+1
for /l %%a in (%print2%,-1,%print3%) do (
set temp= %%a
set temp=!temp:~-4!
set /p=!temp!<nul
)
pause>nul
::
复制代码
以上代码可打印如下图型
未命名.JPG
(12.07 KB, 下载次数: 29)
下载附件
2011-4-17 23:29 上传
[
本帖最后由 0428_hai 于 2011-4-17 23:31 编辑
]
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/)
Powered by Discuz! X3.3