可以实现简单的开方,但是效率不怎么样,并且只限于存在整数次方根的情况,当然,超过2^31-1的数字就不行了。基本思路就是:如果对x开n次方,则从2开始到x/n的整数止,对每个数进行测试,只到找到为止,代码如下:
@echo off
setlocal enabledelayedexpansion
:Main
cls
set x=
set n=
set /p x= 请输入被开方的数:
set /p n= 请输入开方次数:
set /a mod=%n%%%2
if %x% equ 1 (
echo.
echo %x% 的 %n% 次方根是 1
echo.
pause
goto Main
)
set /a quotient=x/n
set flag=
for /l %%i in (2,1,%quotient%) do (
set num=%%i
for /l %%j in (2,1,%n%) do (
set /a num=%%i*!num!
)
if !num! equ %x% (
echo.
if %mod% equ 0 (
echo %x% 的 %n% 次方根是 ±%%i
) else echo %x% 的 %n% 次方根是 %%i
echo.
set flag=1
goto end
)
)
:end
if not defined flag (
echo.
echo %x% 的 %n% 次方根不是整数
echo.
)
pause
goto Main
Last edited by namejm on 2007-3-16 at 01:02 PM ]