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

求教:

@echo off&setlocal EnableDelayedExpansion
for /l %%k in (0,1,9) do ( set /a t%%k=%%k*%%k*%%k )
for /l %%i in (1,1,10000) do (
  set num=%%i
  set "n="
  :loop
    set /a a=!num!%%10
    set /a num/=10
    set /a n+=t!a!
  if !num! neq 0 goto loop
  if !n!==%%i echo %%i
)
pause
此段代码第二个for循环为何只能循环10次??

TOP

回复 3楼 的帖子

你这个效率应该是很高了,所用的时间应该是for /l 必须的时间了吧。。
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "u1="
  4. for /l %%i in (0,1,9) do set /a t%%i=%%i*%%i*%%i
  5. for /l %%i in (1,1,10000) do (
  6. set k=%%i
  7. set /a a=%%i/10000
  8. set /a b=%%i/1000"%%"10
  9. set /a c=%%i/100"%%"10
  10. set /a d=%%i/10"%%"10
  11. set /a e=%%i"%%"10
  12. set /a n=t!a!+t!b!+t!c!+t!d!+t!e!
  13. if "!n!" == "%%i" echo %%i
  14. )
  15. pause
复制代码
请问有没有效率高的算法?
1

评分人数

静水流深...

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,9) do (
  4. for /l %%b in (0,1,9) do (
  5. set /a bb=%%a*%%a+%%b*%%b
  6. if !bb!==%%a%%b echo   %%a%%b 是水仙花数
  7. for /l %%c in (0,1,9) do (
  8. set /a aa=%%a*%%a*%%a+%%b*%%b*%%b+%%c*%%c*%%c
  9. if !aa!==%%a%%b%%c echo   %%a%%b%%c 是水仙花数
  10. for /l %%d in (0,1,9) do (
  11. set /a cc=%%a*%%a*%%a+%%b*%%b*%%b+%%c*%%c*%%c+%%d*%%d*%%d
  12. if !cc!==%%a%%b%%c%%d echo %%a%%b%%c%%d 是水仙花数
  13. ))))
  14. echo.&pause
复制代码

TOP

返回列表