返回列表 发帖
@echo off
for /l %%a in (11,1,999) do (set str=%%a&call :a)
pause
:a
set n3=%str:~0,1%
set n2=%str:~1,1%
set n1=%str:~2,1%
if "%n1%" equ "" (set rts=%n2%%n3%) else (set rts=%n1%%n2%%n3%)
if %rts% equ %str% (echo %str%)
goto :eofCOPY
上学时想的..

TOP

小第不才 只能顶上去.

TOP

@echo off
for /l %%i in (1 1 9) do (
echo %%i%%i
for /l %%j in (0 1 9) do (
echo %%i%%j%%i
)
)
pause>nulCOPY
参照youxi01的方法,自己写的.
砂石下的泉水,掘得越深,泉水会越清吗?

TOP

回复 16楼 的帖子

你的效率明显的低于我的效率..
砂石下的泉水,掘得越深,泉水会越清吗?

TOP

@echo off&setlocal enabledelayedexpansion
for /l %%i in (0 1 1000) do (
    set a=%%i
    if "!a:~0,1!"=="!a:~-1,1!" echo !a!
)
pauseCOPY

[ 本帖最后由 keen 于 2009-4-2 22:39 编辑 ]
(*^_^*)

TOP

来个10000以内的回文数:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (0 1 1000) do (
    set a=%%i
    if "!a:~0,1!"=="!a:~-1,1!" echo !a!
)
for /l %%i in (1001 1 10000) do (
    set a=%%i
    if "!a:~0,1!"=="!a:~-1,1!" if "!a:~1,1!"=="!a:~-2,1!" echo !a!
)
pauseCOPY
其实是在1000以内的多加几行。
(*^_^*)

TOP

简洁10000以内的回文数:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (0 1 10000) do (
    set a=%%i
    if "!a:~0,1!"=="!a:~-1,1!" if !a! lss 1000 (echo !a!) else (if "!a:~1,1!"=="!a:~-2,1!" echo !a!)
)
pauseCOPY
(*^_^*)

TOP

@echo off&setlocal enabledelayedexpansion
for /l %%i in ( 10,1,999 ) do (
set str=%%i
set a=!str:~0,1!
set b=!str:~-1,1!
if "!a!"=="!b!" echo %%i)
pauseCOPY



10000以内的
@echo off&setlocal enabledelayedexpansion
for /l %%i in (10,1,10000) do (
set str=%%i
set a=!str:~0,1!
set b=!str:~-1,1!
set c=!str:~1,1!
set d=!str:~-2,1!
if "!a!"=="!b!" ( if "!c!"=="!d!" echo !str!))
pauseCOPY

[ 本帖最后由 cainiao736 于 2009-4-4 16:45 编辑 ]

TOP

我也试试

这个问题如果是每一个数去判断的话,那效率是低点,但是这样求出的数是有顺序的!
@echo off
setlocal enabledelayedexpansion
for %%a in (1 2 3 4 5 6 7 8 9) do (
rem 以下两句是求两位的回文数
echo %%a%%a
set/a num+=1
for %%b in (0 1 2 3 4 5 6 7 8 9) do (
rem 以下两句是求三位的回文数
  echo %%a%%b%%a
  set/a num+=1
rem 以下两句是求四位的回文数
  echo %%a%%b%%b%%a
  set/a num+=1
)
)
echo 10000以内回文数共有!num!
pauseCOPY

TOP

100到10000000以内的回文数

100以内的就不去“数”了。
@echo off&setlocal enabledelayedexpansion
for /l %%a in (100,1,10000000) do (
set a=%%a
if "!a:~0,1!" == "!a:~-1,1!" (
if "!a:~1,1!" == "!a:~-2,1!" (
if "!a:~2,1!" == "!a:~-3,1!" (
echo !a!
))))
pauseCOPY

TOP

回复 1# wxcute
@echo off
setlocal enabledelayedexpansion
for /l %%i in (10 1 999) do (
set "a=%%i"
if "!a:~,1!" equ "!a:~-1!" (echo !a!)
)
pauseCOPY
1

评分人数

    • cjiabing: 思路可以,功底扎实。PB + 12

TOP

@if not defined debug @echo off&setlocal enabledelayedexpansion
for /l %%i in (1 1 1000) do (
    set /a a=%%i/100
    set /a b=%%i/10-!a!*10
    set /a c=%%i-!a!*100-!b!*10
    if !c! equ !a! (if not !a! equ 0 echo %%i)
)
pause >nulCOPY
[color=BLUE]一切只为了批处理&DOS[/color]

TOP

本帖最后由 mxxcgzxxx 于 2011-8-18 08:09 编辑

给个新思路,100000以内回文数
怎么就没人想出这个方案呢??很容易啊
@echo off
setlocal enabledelayedexpansion
for /l %%i in  (1 1 99) do (
         set /a a=%%i/10+%%i%%10*10+100
         if !a:~-1!==0 (set a=!a:~-2,1!) else (set a=!a:~-2!)
         echo %%i!a!
         for /l %%j in (0 1 9) do echo %%i%%j!a!
         pause>nul
         )
set /a b=99*11
echo 100000以内有%b%个回文数
pause>nulCOPY
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

@echo off
setlocal enabledelayedexpansion
for /l %%i in (0,1,1200) do (
     set a=%%i
     if "!a:~0,1!"=="!a:~-1!"  (
       if "!a:~1,1!"=="" (
         echo !a!>>1.txt
       ) else (
                if "!a:~1,1!"=="!a:~-2,1!" (
                  if "!a:~3,1!"=="" (
                    echo !a!>>1.txt
                  ) else echo 你的数太大啦!&goto  out
                )
         )
     )
)
:out
pauseCOPY
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 29# 悬崖之树
这个代码有问题,并不是只要测试到六位数就提示“你输入的数太大了”,而是要到类似 “124521” 之类的六位数才会提示。下面是改进后的
@echo off
setlocal enabledelayedexpansion
if exist 1.txt del 1.txt
:ks
set /p num=请输入一个最多5位的正整数:
if %num% gtr 999999 echo 你的数太大了,请重新输入!& goto ks
for /l %%i in (0,1,%num%) do (
     set a=%%i
     if "!a:~0,1!"=="!a:~-1!"  (
       if "!a:~3,1!"=="" (
         echo !a!>>1.txt
       ) else (
                if "!a:~1,1!"=="!a:~-2,1!" (
                  if "!a:~5,1!"=="" (
                    echo !a!>>1.txt
                  )
                )
         )
     )
)
echo 结果已经保存在当前目录下的1.txt文件中
pauseCOPY
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

返回列表