[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]找出10000以内的所有回文数的批处理代码错在哪里?

本帖最后由 悬崖之树 于 2014-7-25 21:06 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 10000) do (
  4.    set str=%%i
  5.    set /a n=0
  6.    call :loop
  7.    if !str!==!res! echo %%i   
  8. )
  9. pause
  10. :loop
  11. if "!str:~%n%,1!" neq "" (
  12.    set /a n+=1&goto loop
  13. )
  14. for /l %%i in (1 1 %n%) do (
  15.    set "i=-%%i"
  16.    call set res=!res!%%str:~!i!,1%%
  17. )
复制代码
下面的代码也不行:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 10000) do (
  4.    set str=%%i
  5.    set /a n=0
  6.    call :loop
  7.    if !str!==!res! echo %%i   
  8. )
  9. pause
  10. :loop
  11. call set t=%%str:~!n!,1%%
  12. if "!t!" neq "" (
  13.    set res=!t!!res!
  14.    set /a n+=1
  15.    goto loop
  16. )
复制代码
我的算法是把10000以内的所有的数反写,如果反写后的数和正写的数一样的话,就认为是回文数。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
时光荏苒||新陈代谢&&涛声依旧||本性难移

回复 3# CrLf

谢谢 crlf 的提醒,让我茅塞顿开啊。
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

返回列表