[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
试试:
  1. @echo off
  2. :bgn
  3. set input=&set /p input=请输入3以上的单数(回车退出):
  4. if not defined input goto :eof
  5. cls
  6. if %input% lss 3 (echo.你输入的也太小了吧...&goto :bgn)
  7. echo.%input:~-1%|findstr "[^13579]" >nul&&(echo.请输入单数...&goto :bgn)
  8. set /a num1=(%input%*%input%+1)*%input%/2,num2=%input%*%input%
  9. echo.%input%阶幻方各行,列以及对角线相加的和为:%num1%
  10. set /a lie=%input%/2+1,hang=1,all=1
  11. set h1l%lie%=1
  12. :agn
  13. set /a hang-=1,lie+=1,all+=1
  14. if %hang% lss 1 set hang=%input%
  15. if %lie% gtr %input% set lie=1
  16. if defined h%hang%l%lie% (set /a hang+=2,lie-=1)
  17. set h%hang%l%lie%=%all%
  18. if "%hang%"=="1" (
  19.   if "%lie%"=="%input%" (
  20.     set /a hang+=1,all+=1
  21.     call set h%%hang%%l%lie%=%%all%%
  22.   )
  23. )
  24. if %all% equ %num2% goto :show
  25. goto :agn
  26. :show
  27. for /l %%a in (1 1 %input%) do (
  28.   for /l %%b in (1 1 %input%) do (
  29.     call set/p=%%h%%al%%b%%  <nul
  30.     set "h%%al%%b="
  31.   )
  32.   echo.
  33. )
  34. goto :bgn
复制代码
2

评分人数

TOP

应版主的要求,再做一些修改吧:
  1. @echo off
  2. :bgn
  3. set input=&set /p input=请输入一个单数(回车退出):&cls
  4. if not defined input goto :eof
  5. echo.%input%|findstr /v "^[0-9]*$" >nul&&(echo.请输入纯数字!!!&goto :bgn)
  6. echo.%input:~-1%|findstr "[^13579]" >nul&&(echo.请输入单数!!!&goto :bgn)
  7. set /a num1=(%input%*%input%+1)*%input%/2,num2=%input%*%input%
  8. echo.%input%阶幻方各行,列以及对角线相加的和为:%num1%&echo.
  9. set /a lie=%input%/2+1,hang=1,all=1
  10. if %num2% gtr 99 (set h1l%lie%=  1) else (set h%hang%l%lie%= 1)
  11. :agn
  12. set /a hang-=1,lie+=1,all+=1
  13. if %hang% lss 1 set hang=%input%
  14. if %lie% gtr %input% set lie=1
  15. if defined h%hang%l%lie% (set /a hang+=2,lie-=1)
  16. call :duiqi
  17. if "%hang%"=="1" (
  18.   if "%lie%"=="%input%" (
  19.     set /a hang+=1,all+=1
  20.     call :duiqi
  21.   )
  22. )
  23. if %all% geq %num2% goto :show
  24. goto :agn
  25. :show
  26. for /l %%a in (1 1 %input%) do (
  27.   for /l %%b in (1 1 %input%) do (
  28.     call set/p=%%h%%al%%b%%  <nul
  29.     set "h%%al%%b="
  30.   )
  31.   echo.&echo.
  32. )
  33. goto :bgn
  34. :duiqi
  35. if %num2% gtr 99 (
  36.   if %all% lss 10 (
  37.     set h%hang%l%lie%=  %all%
  38.   ) else (
  39.     if %all% lss 100 (
  40.       set h%hang%l%lie%= %all%
  41.     ) else (
  42.       set h%hang%l%lie%=%all%
  43.     )
  44.   )
  45. ) else (
  46.   if %num2% gtr 9 (
  47.     if %all% lss 10 (
  48.       set h%hang%l%lie%= %all%
  49.     ) else (
  50.       set h%hang%l%lie%=%all%
  51.     )
  52.   ) else (set h%hang%l%lie%= %all%)
  53. )
复制代码

TOP

返回列表