第一个有字符限制 第二个没字符限制 效率给限制了- @echo off&setlocal enabledelayedexpansion
- set/a n=29,q=3,z=1
- for /l %%i in (%z% 1 !n!) do (
- set/a m+=1,t=m%%q
- if !t! neq 0 set str=!str! %%i
- )
- set/a z-=1
- for /l %%i in (!z! -1 1) do set str=%%i !str!
- call :lp "!str!"
- echo 最后剩下的是原来的 !str! 号
- pause&exit
- :lp
- set p=&set "str="
- for %%i in (%~1) do (
- set/a m+=1,t=m%%q
- if !t! neq 0 set str=!str! %%i&set/a p+=1
- )
- if !p! gtr 1 call:lp "!str!"
复制代码
修改 : 当从最后一位 开始循环出错
- @echo off&setlocal enabledelayedexpansion
- set/a n=29,s=29,q=3
- if %n% equ %s% set p=1
- :lp
- for /l %%i in (!s! 1 !n!) do (
- if not defined %%i (
- set/a m+=1,t=m%%q
- if !t! equ 0 (set %%i=%%i)else set/a str=%%i,p+=1,n=%%i,s=1
- )
- )
- if !p! gtr 1 set p=&goto lp
- echo 最后剩下的是原来的 !str! 号
- pause
复制代码
[ 本帖最后由 terse 于 2008-8-5 20:59 编辑 ] |