当前位置: 移动技术网 > IT编程>网络>Dos/Bat > 用批处理解决数学问题的代码第1/4页

用批处理解决数学问题的代码第1/4页

2017年12月12日  | 移动技术网IT编程  | 我要评论
#01 ! 求水仙花数? #02 ! 有四个数,其中任意三个数相加,所得的和分别是84,88,99,110,求这四个数? #03 ! 赵姑娘的岁数有以下特点: 1. 它的3

【01】by [lxmxn]
========================================================================================

@echo off&&setlocal enabledelayedexpansion
for %%a in (1 2 3 4 5 6 7 8 9) do (
for %%b in (0 1 2 3 4 5 6 7 8 9) do (
for %%c in (0 1 2 3 4 5 6 7 8 9) do (
set/a result=%%a*%%a*%%a+%%b*%%b*%%b+%%c*%%c*%%c
if "!result!"=="%%a%%b%%c" (
echo %%a%%b%%c是水仙花数!
)

)
)
)
pause

========================================================================================
【02】by [lxmxn]
========================================================================================
========================================================================================
【03】by [youxi01]
========================================================================================
@echo off
setlocal enabledelayedexpansion
for /l %%i in (10 1 30) do (
::清空变量
set flag=
for /l %%a in (0 1 9) do set %%a=
::取得立方和四次方
set /a cube=%%i*%%i*%%i
set /a s=!cube!*%%i
if !cube! geq 1000 if !cube! lss 10000 (
if !s! geq 100000 if !s! lss 1000000 (
set num=!s!!cube!
call :test !num!
if not defined flag echo %%i !num!
)
)
)

pause>nul
:test
for /l %%a in (0 1 9) do (
set var=%1
::将参数的第一个数字赋值给var_;检查变量值!var_!是否已经被作为变量被定义。
set var_=!var:~%%a,1!
if defined !var_! set flag=1 & goto :eof
set !var_!=a
)

========================================================================================
【04】by [youxi01]
========================================================================================

@echo off
set /a t_num=0
setlocal enabledelayedexpansion

echo 正在检测数据.....
for /l %%i in (1 1 4889) do (
if !t_num! lss 4889 (
if %%i lss 10 set /a t_num+=1
if %%i geq 10 if %%i lss 100 set /a t_num+=2
if %%i geq 100 if %%i lss 1000 set /a t_num+=3
if %%i geq 1000 set /a t_num+=4
) else set /a num=%%i-1 & goto :exit
)
:exit
echo 要求的数为:%num%
pause>nul

========================================================================================
【05】by [youxi01]
========================================================================================

@echo off
set /a f_num=23
set /a j_num=60/4

setlocal enabledelayedexpansion
for /l %%i in (1 1 %j_num%) do (
set /a s_num=%%i
set /a b_num=%j_num%-%%i
set /a num=!s_num!+2*!b_num!
call :test !num! !s_num! !b_num!
)
pause>nul

:test
if %1 equ %f_num% echo 可能的组合为:单峰数目=%2 双峰数目=%3
goto :eof

========================================================================================
2

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网