[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理打印趣味数列

用批打印出如下趣味数列(9行9列),示例中的“-”“|”是为了说明数字间的排列关系而并非数列本身所有(打印时可省略):
  1. 01 02 05 10 17...
  2.    |  |  |  |
  3. 04-03 06 11 18...
  4.       |  |  |
  5. 09-08-07 12 19...
  6.          |  |
  7. 16-15-14-13 20...
  8.             |
  9. 25-24-23-22-21...
  10. .................
复制代码
一路飘过的鸟~~~

本帖最后由 ArdentMan 于 2011-8-14 12:53 编辑

本人拙解:
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. For /L %%i In (1,1,9) Do (
  3.   set ".%%i="
  4.   Set /A Pf=%%i*%%i,Num=Pf-2*%%i+2,Number=Pf-%%i+1,Count=%%i
  5.   For /L %%j In (!Pf!,-1,!Num!) Do (
  6.     Set "Str=00%%j"&Set "Str=!Str:~-2!"
  7.     If %%j GEQ !Number! (
  8.       Set ".%%i=!.%%i! !Str!" (
  9.       ) Else (
  10.       Set /A Count-=1
  11.       For %%k In (!Count!) Do Set ".%%k=!.%%k! !Str!"
  12.     )
  13.   )
  14. )
  15. Set .
  16. Pause>Nul
复制代码
1

评分人数

一路飘过的鸟~~~

TOP

本帖最后由 ArdentMan 于 2011-8-14 21:26 编辑

三楼算法一次性输出方案:
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. For /L %%i In (1,1,9) Do (
  3.   For /L %%j In (1,1,9) Do (
  4.     If %%j EQU 1 (
  5.       Set /A Num=%%i*%%i+100
  6.       ) Else (
  7.       If %%j LEQ %%i (
  8.         Set /A Num=%%i*%%i-%%j+101
  9.         ) Else (
  10.         Set /A Num=%%j*%%j-2*%%j+%%i+101
  11.       )
  12.     )
  13.     Set "Str=!Str! !Num:~-2!"
  14.   )
  15.   Echo !Str:~1!&Set "Str="
  16. )
  17. Pause>Nul   
复制代码
一路飘过的鸟~~~

TOP

plp626连公式都搞出来了,真牛人一个
一路飘过的鸟~~~

TOP

返回列表