Board logo

标题: [特效代码] 【已解决】批处理怎样实现1-10 顺着排 跟倒着排? [打印本页]

作者: panda951    时间: 2015-3-23 21:23     标题: 【已解决】批处理怎样实现1-10 顺着排 跟倒着排?

本帖最后由 panda951 于 2015-3-23 22:50 编辑

user insert num1:3 (num1代表會出現的數字,num2 代表出現次數 里路 2 = 1 2 1)
user insert num2:10
1
12
123
1231
12312
123123
1231231
12312312
123123123
1231231231
123123123
12312312
1231231
123123
12312
1231
123
12
1

这个代码叫什么....
找不到相关资料......
作者: pcl_test    时间: 2015-3-23 22:36

本帖最后由 pcl_test 于 2015-3-23 22:52 编辑

回复 1# panda951
  1. @echo off
  2. set /p n1=user insert num1:
  3. set /p n2=user insert num2:
  4. set /a r=%n2%-1
  5. set t=0
  6. :main
  7. setlocal enabledelayedexpansion
  8. for /l %%a in (1 1 %n1%) do (
  9. set "s=!s!%%a"
  10. set /a t+=1
  11. )
  12. if !t! geq !n2! (set str=!s!) else goto main
  13. for /l %%a in (1 1 %n2%) do set str=!str:~,%%a! & echo !str! &set str=!s!
  14. for /l %%b in (%r% -1 1) do set str=!str:~,%%b! & echo !str! &set str=!s!
  15. pause
复制代码

作者: luo0527    时间: 2015-3-23 22:39

好难的样子。
作者: panda951    时间: 2015-3-23 22:49

回复 3# luo0527


    我完全不明白这个有神马意义==
作者: panda951    时间: 2015-3-23 22:53

回复 2# pcl_test


    能告诉下他是如何运作吗?有点看不明白
作者: pcl_test    时间: 2015-3-23 23:03

回复 5# panda951
假设有num1:3,num2:4
那么可以看成
1-23123123
12-3123123
123-123123
1231-23123
123-123123
12-3123123
1-23123123
在每行-处截取前面的数
作者: bailong360    时间: 2015-3-23 23:06

  1. @Echo Off
  2. SetLocal EnableDelayedExpansion
  3. Set /P Num1=user insert num1:
  4. Set /P Num2=user insert num2:
  5. For /L %%i In (1 1 %Num2%) Do (
  6. Set N=0
  7. For /L %%j In (1 1 %%i) Do (
  8. If "!N!"=="3" (Set N=1) Else Set /A N+=1
  9. Set .%%i=!.%%i!!N!
  10. )
  11. Echo !.%%i!
  12. )
  13. Set /A Num2-=1
  14. For /L %%i In (%Num2% -1 1) Do Echo !.%%i!
复制代码
我也来一个
作者: cobat    时间: 2015-3-23 23:14

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p n1=user insert num1:
  3. set /p n2=user insert num2:
  4. :loop
  5. for /l %%a in (1,1,%n1%) do set "s=!s!%%a"
  6. if "!s:~%n2%!" equ "" goto :loop
  7. for /l %%a in (1,1,%n2%) do echo !s:~,%%a!
  8. set/a n2-=1&for /l %%a in (!n2!,-1,1) do echo !s:~,%%a!
  9. pause
复制代码

作者: panda951    时间: 2015-3-24 09:18

回复 6# pcl_test


  原来是截取....
感谢你的分享
作者: panda951    时间: 2015-3-24 09:21

回复 7# bailong360


    大哥你的只是到123...
作者: panda951    时间: 2015-3-24 09:22

回复 8# cobat


   感谢你的分享
作者: 愤怒的CMD    时间: 2015-3-24 09:36

我也来一个
bailong360 发表于 2015-3-23 23:06



没看出来Num1有什么用。代码可以改成
  1. @Echo Off
  2. SetLocal EnableDelayedExpansion
  3. Set /P Num=user insert Num:
  4. For /L %%i In (1 1 %Num%) Do (
  5. Set N=0
  6. For /L %%j In (1 1 %%i) Do (
  7. If "!N!"=="%Num%" (Set N=1) Else Set /A N+=1
  8. Set .%%i=!.%%i!!N!
  9. )
  10. Echo !.%%i!
  11. )
  12. Set /A Num-=1
  13. For /L %%i In (%Num% -1 1) Do Echo !.%%i!
  14. pause>nul
复制代码

作者: bailong360    时间: 2015-3-24 16:15

回复 12# 愤怒的CMD


    不好意思,代码错了...
  1. @Echo Off 2>nul 3>nul
  2. SetLocal EnableDelayedExpansion
  3. Set /P Num1=user insert num1:
  4. Set /P Num2=user insert num2:
  5. For /L %%i In (1 1 %Num2%) Do Set /A "1/(N-Num1)"&&Set /A N+=1||Set N=1&Set ..=!..!!N!
  6. For /L %%i In (%Num2% -1 -%Num2%) Do For /F "Delims=-" %%j In ("%%i") Do Set /A "1/%%i"&&Echo;!..:~0,-%%j!||Echo !..!
  7. Pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2