|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『楼 主』:
一道文本输出题(视完成程序加分)
已知字符串abcdabcdabcdabcd
通过批处理每次随机减少一个字符,输出为如下形式:
一、第一个做出来的予以加3分
----------------------------------------------------------------------------------------------------------
abcdabcdabcdabcd
abcdabcdabcdbcd
abcdabcdbcdbcd
abcdabcdbcbcd
abcdacdbcbcd
bcdacdbcbcd
bcdacdcbcd
bcdaccbcd
bcdacbcd
bcdacbd
bcdacd
bcacd
bccd
bcd
bc
b 二、第一个做出来的加7分
----------------------------------------------------------------------------------------------------------
abcdabcdabcdabcd
abcdabdabcdabcd
abcdbdabcdabcd
abcdbdabdabcd
abcdbdabdabc
abcddabdabc
abcddadabc
abddadabc
abddadab
addadab
adadab
addab
ddab
dab
ab
b 三、第一个做出来的加15分
----------------------------------------------------------------------------------------------------------
abcdabcdabcdabcd abcdabcdabcdabcd
abcdabdabcdabcd abcdabdabcdabcd
abcdbdabcdabcd abcdbdabcdabcd
abcdbdabdabcd abcdbdabdabcd
abcdbdabdabc abcdbdabdabc
abcddabdabc abcddabdabc
abcddadabc abcddadabc
abddadabc abddadabc
abddadab abddadab
addadab addadab
adadab adadab
addab addab
ddab ddab
dab dab
ab ab
b b
ab ab
dab dab
ddab ddab
addab addab
adadab adadab
addadab addadab
abddadab abddadab
abddadabc abddadabc
abcddadabc abcddadabc
abcddabdabc abcddabdabc
abcdbdabdabc abcdbdabdabc
abcdbdabdabcd abcdbdabdabcd
abcdbdabcdabcd abcdbdabcdabcd
abcdabdabcdabcd abcdabdabcdabcd
abcdabcdabcdabcd abcdabcdabcdabcd [ Last edited by zw19750516 on 2008-7-10 at 11:55 AM ]
|
批处理之家新域名:www.bathome.net |
|
2008-7-10 10:39 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
abcdabcdabcdabcd的长度是固定的还是可变的?
|
|
|
2008-7-10 10:47 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
3 楼』:
本来是想专门为新手出这道题的,现在看来是事与愿违了。
[ Last edited by zw19750516 on 2008-7-10 at 11:53 AM ]
|
批处理之家新域名:www.bathome.net |
|
2008-7-10 10:50 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
4 楼』:
1.
@echo off&setlocal enabledelayedexpansion
set str=abcdabcdabcdabcd
set n=17
:1
set/a n-=1
set/a m=%random%%%%n%,x=n-m
set str=!str:~,%m%!!str:~-%x%!
echo %str%
if %n% gtr 1 goto 1
pause
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-7-10 12:47 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
|
2008-7-10 12:55 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
|
2008-7-10 13:07 |
|
|
quya
高级用户
五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
|
2008-7-10 13:15 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-7-10 13:17 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
9 楼』:
在前辈们面前我永远只是新手而已。。。解题是因为以前从没涉猎过类似的题目,想知道自己能力,加不加分无所谓,我不是为了这个,能够有新的思路才是最重要的。。^_^
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-7-10 13:18 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by pusofalse at 2008-7-10 13:18:
在前辈们面前我永远只是新手而已。。。解题是因为以前从没涉猎过类似的题目,想知道自己能力,加不加分无所谓,我不是为了这个,能够有新的思路才是最重要的。。^_^ |
|
我这所以还是为你加了分是因为你那个set n=17,说老实话,我是没想到的,我的代码比你的复杂。
|
批处理之家新域名:www.bathome.net |
|
2008-7-10 13:20 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
11 楼』:
都不敢拿出手了,但是思路还是不同,代码也通用,还是发出来一起研究下了:
@echo off&setlocal enabledelayedexpansion
set str=abcdabcdabcdabcd
set code=%str%
echo %code% %code%
:lp
set a=%str:~,1%&set /a num+=1
set var=%var% %a%&set str=%str:~1%
if defined str goto lp
set n=%num%
:loop
set "kong= "
set /a a=%random%%%%n%+1,b=num-n
for /l %%i in (1,1,%b%) do set kong= !kong!
for %%i in (%var%) do (
set /a m+=1
if "%a%" neq "!m!" set str=!str! %%i
)
set var=%str%&set str=&set /a n-=1,m=0,c+=1
set _%c%=%var: =%&set .%c%=%kong%%var: =%
if %n% neq 0 echo %kong%%var: =% %var: =%&goto loop
set /a c-=2
for /l %%i in (%c%,-1,1) do echo !.%%i! !_%%i!
echo %code% %code%
pause>nul
|
批处理之家新域名:www.bathome.net |
|
2008-7-10 13:25 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
12 楼』:
^_^
@echo off&mode con: cols=50 lines=33&color 1f
::获取字符串的长度
set "str=abcdabcdabcdabcd"
setlocal enabledelayedexpansion
for /l %%a in (0 1 100) do if not "!str:~%%a,1!"=="" set /a m=%%a+1
endlocal&set /a m=%m%&echo.
::第一题、==============================================
setlocal enabledelayedexpansion
:loop1
set /a w=!random!%%m+1,h=w-1,m-=1
set str=!str:~0,%h%!!str:~%w%!
echo !str!
if !m! neq 1 goto loop1
ping/n 2 127.1>nul
::第二题、==============================================
cls&endlocal&echo.
setlocal enabledelayedexpansion&color 1a
:loop2
set /a w=!random!%%m+1,h=w-1,m-=1
set str=!str:~0,%h%!!str:~%w%!
echo %ko%!str!
set "ko= %ko%"
if !m! neq 1 goto loop2
ping/n 2 127.1>nul
::第三题、==============================================
cls&endlocal&echo.
setlocal enabledelayedexpansion&color 1e
:loop3
set /a n+=1,w=!random!%%m+1,h=w-1,m-=1
set num%n%=%ko%%str% %str%
set str=!str:~0,%h%!!str:~%w%!
set "ko= %ko%"
echo !num%n%!
if !m! neq 0 goto loop3
set /a n-=1
for /l %%a in (!n! -1 1) do echo !num%%a!
pause>nul [ Last edited by 26933062 on 2008-7-10 at 04:41 PM ]
|
致精致简! |
|
2008-7-10 13:26 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by zw19750516 at 2008-7-10 01:25 PM:
都不敢拿出手了,但是思路还是不同,代码也通用,还是发出来一起研究下了:
[code]
@echo off&setlocal enabledelayedexpansion
set str=abcdabcdabcdabcd
set code= ... |
|
学习! 正是从前辈这里学到的知识。。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-7-10 13:28 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
14 楼』:
下次出题应该规定某级别以上会员不准抢着贴答案,否则扣分,呵呵。
|
|
|
2008-7-10 18:45 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by HAT at 2008-7-10 18:45:
下次出题应该规定某级别以上会员不准抢着贴答案,否则扣分,呵呵。 |
|
实在是冤! 我是看楼主都已经公布答案了,才帖代码的 。
|
致精致简! |
|
2008-7-10 20:38 |
|