123
234
345
456
567
678
789
作者: skuny 时间: 2009-1-9 16:14
@echo off
set /a m=0
call :sas A B C D E F G H I
pause&goto :eof
:sas
set /a m+=1
set /a n=m+1
set /a l=m+2
call echo %%%m% %%%n% %%%l%
if %m%==7 goto :eof
if not %m%==7 goto sas
作者: myzwd 时间: 2009-3-1 21:43 标题: 回复 1楼 的帖子
@echo off&setlocal enabledelayedexpansion
set str=123456789
echo original--%str%
echo new element is---
for /l %%i in (1 1 7) do (
set /a x=%%i
set /a y=%%i+1
set /a z=%%i+2
set /p=!x!!y!!z! <nul
)
rem 利用了等差数列1--7,2--8,3--9
--------------------------------------------------------------------------------------------------------------------------------------
---方法2利用call控制堆栈(多加一个%可以控制call,让call推入堆栈的数据是for的结果,而不是for前的结果)
@echo off
set str=123456789
echo original--%str%
echo new element is---
for /l %%i in (1 1 7) do (
call set /a x=%%%i
call set /a y=%%%i+1
call set /a z=%%%i+2
call set /p=%%x%%%%y%%%%z%% <nul
)
rem 利用了等差数列1--7,2--8,3--9
[ 本帖最后由 myzwd 于 2009-3-1 21:49 编辑 ]
作者: irresolute 时间: 2009-3-13 20:13 标题: 我来试试
- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in (1,1,9) do (
- set /a a=%%i
- set /a b=!a!+1
- set /a c=!b!+1
- if !c! lss 10 set /a d+=1&echo !a! !b! !c!
- )
- echo 总共有%d%个
- pause>nul
复制代码
作者: keen 时间: 2009-3-13 22:03
我来凑数。见笑!- @echo off
- setlocal enabledelayedexpansion
- set a=123456789
- set /a num=9
- :start
- set b=%a:~0,3%
- set /a num-=1
- set a=!a:~1,%num%!
- if %num%==1 goto end
- echo %b% &echo.
- goto start
- :end
- pause
复制代码
作者: sjzong 时间: 2009-5-10 00:18
- @echo off
- setlocal enabledelayedexpansion
- set a=123456789
- set/a num=0
- for /l %%a in (0 1 6) do echo !a:~%%a,3!&set/a num+=1
- echo 共有 %num% 种方法,方法如上所示!
- pause
复制代码
作者: keiamy 时间: 2014-1-6 11:47
- @echo off&setlocal enabledelayedexpansion
- :begin
- set "s=123456789"
- set "s=!s:~%m%!"
- :lp
- if %s%0 gtr 1000 (set "str=%s:~,3%") else (set /a m+=1&goto begin)
- if defined var if "!var:%str%=!" neq "%var%" goto end
- set /a n+=1
- set "var=%var% %str%"
- set "s=!s:*%str%=!"
- goto lp
- :end
- echo Total is %m% sausages %n% kinds
- echo%var%
- pause
复制代码
作者: PowerShell 时间: 2014-1-6 13:25
本帖最后由 PowerShell 于 2014-1-6 13:28 编辑
- # powershell也来切香肠
- <#
- 要过年了,来切香肠!
- 一根香肠分 9 节,每节颜色都不同,要切成 3 节一段的;
- 有许多同样的 9 节香肠,共能切出多少种不同的 3 节香肠呢?
- #>
- [array]$结果 = ""
- $香肠总节数 = 9 + 1
- for ($i=1 ;$i -lt $香肠总节数 ;$i++)
- {
- $香肠尾 = $i
- while ( $香肠尾 -lt $香肠总节数 )
- {
- $香肠头 = $香肠尾
- $香肠尾 = $香肠尾 + 2
- if ($香肠尾 -lt $香肠总节数)
- {
- $结果 += $香肠头..$香肠尾 -join ""
- }
- $香肠尾++
- }
- }
- $结果 = $结果 | Sort-Object -Unique
- write-host $结果
复制代码
作者: 尘丶 时间: 2015-8-10 12:18
- @echo off&setlocal enabledelayedexpansion
- set s=123456789
- for /l %%a in (0,1,100) do (
- set s1=!s:~%%a,3!
- set s2=!s1:~3!
- if "!s2!"=="" if !s1! gtr 100 set /a n+=1&echo;!s1!
- )
- echo;!n!
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |