返回列表 发帖
你们是怎么样炼成的啊
批处理爱好者,新学员

TOP

本帖最后由 shelluserwlb 于 2014-11-20 09:40 编辑
@echo off
goto :START
我国古代有一种回文诗,倒念顺念都有意思,例如“人过大佛寺”,倒读起来便是“寺佛大过人”。还
有经典的对联“客上天然居,居然天上客”。此种例子举不胜举。
从左向右读与从右向左读完全一样的数字就是回文数,如11121767等等。
:START
MODE CON LINES=200
setlocal enabledelayedexpansion
set /a total=0
for /l %%i in (11,1,10000) do (
    set num=%%i
    :: 判断小于1000的数字
    if !num! lss 1000  (
if "!num:~0,1!"=="!num:~-1,1!" (
    echo !num! & set /a total+=1  
)
    )
   ::判断大于等于1000且小于10000的数字
   if !num! geq 1000  ( if !num! lss 10000 (
if "!num:~0,1!"=="!num:~-1,1!" ( if "!num:~1,1!"=="!num:~2,1!" (
    echo !num! & set /a total+=1
        ))
    ))
)
echo 一万以内总共有%total%个回文件数。
endlocal & pause>NULCOPY
上述是找出10000以内的回文数的批处理代码。

TOP

本帖最后由 shelluserwlb 于 2014-12-6 23:53 编辑

参照18楼的代码,改了一下,按从小到大的顺序显示1000以内的回文数(1个数字不能算回文数)。
@echo off
for /l %%i in (1,1,9) do echo %%i%%i
for /l %%i in (1,1,9) do (
    for /l %%j in (0,1,9) do (
echo %%i%%j%%i
    )
)
pauseCOPY

TOP

参照9楼的代码,按从小到大的顺序完全列出10000以内的回文数
(效率应该不会差到哪里去的。)
@echo off
set /a total=9
for /l %%i in (1,1,9) do echo %%i%%i
for /l %%i in (1,1,9) do (
    for /l %%j in (0,1,9) do (
echo %%i%%j%%i
        set /a total+=1
    )
)
for /l %%i in (1,1,9) do (
    for /l %%j in (0,1,9) do (
        echo %%i%%j%%j%%i
        set /a total+=1
    )
)
echo 一万以内共有%total%个回文数!
pause>nulCOPY

TOP

返回列表