用批处理解决数学问题的代码第4/4页
更新时间:2008年08月31日 21:50:20 作者:
用批处理解决数学问题的代码
【10】by [youxi01]
========================================================================================
@echo off
echo 正在检测数据........
setlocal enabledelayedexpansion
set /a flag=0
for /l %%i in (10000,1,99999) do (
set num=%%i
rem 前面加个1是为了防止类似30820的特殊情况。
set /a num=1!num:3=!
if !num! lss 2000 if !num! gtr 200 set /a flag+=1)
echo %flag%
echo 检测完毕!
pause>nul
========================================================================================
【11】by [youxi01]
========================================================================================
::第11题稍微难一点。利用高中的数学知识可以证明,凡是大于等于4的数,它都可以这样的两个数,它们
::的和与该数相等,乘积要大于等于该数。根据这样的推论,所有的数最后都会拆成这样的形式:
::A*A*A*A....A为2或者3(因为只有2和3不能拆了,最后剩下的肯定只有2和3)。所以我们就可以得到下面
::的代码:(答案是486,我不知道对不对^-^)
@echo off
setlocal enabledelayedexpansion
set num=17
set /a Cnum=%num%/3
set /a Rnum=%num%%%2
set /a Tnum=0
for /l %%i in (%Rnum% 2 %Cnum%) do (
set num_=1
set /a num_tem=%num%/2-%%i*3/2
for /l %%a in (1 1 %%i) do (
set /a num_*=3)
for /l %%b in (1 1 !num_tem!) do (
set /a num_*=2)
if !num_! gtr !Tnum! set /a Tnum=!num_!
)
echo !Tnum!
pause>nul
========================================================================================
【12】by [youxi01]
========================================================================================
@echo off
echo 正在检测数据........
setlocal enabledelayedexpansion
set /a num=1
set /a flag=0
for /l %%i in (2 1 10000) do (
call :test %%i
echo %%i !flag!)
:exit
echo 最小的自然数为:!num!
echo.
echo 检测完毕!
pause>nul
:test
set /a num=!num!*%1
for /l %%i in (1 1 5) do (
if !num:~-1! EQU 0 (set /a flag+=1 & set /a num=!num:~0,-1!) else (
set /a num=!num:~-1! & goto :eof))
========================================================================================
【13】by [youxi01]
========================================================================================
@echo off
echo 正在检测数据........
setlocal enabledelayedexpansion
for /l %%a in (90 1 180) do (
for /l %%b in (1 1 %%a) do (
set /a num=%%a %% %%b
if !num! EQU 0 (
set /a num=%%a/%%b
set /a num_=!num!+%%a+%%b
if !num_! EQU 181 echo 这样的数有,被除数:%%a 除数:%%b 商:!num!
)
)
)
echo.
echo 检测完毕!
pause>nul
相关文章
批处理入门手册之批处理常用DOS命令篇(echo、rem、cd、dir)
这篇文章主要介绍了批处理入门手册之批处理常用DOS命令篇,需要的朋友可以参考下2016-11-11
最新评论