Рекурсивный пакетный скрипт для расчета Pow
Я разбиваю голову, пытаясь понять, где ошибка в этом пакетном скрипте, используемом для вычисления пау заданного числа через рекурсию функции "pow", столько раз, сколько в порядке пау (в скрипте установить Pow O 3^3)
Я получил следующие ошибки: "order1" не распознается как внутренняя или внешняя команда, работающая программа или командный файл. "base22" не распознается как внутренняя или внешняя команда, работающая программа или командный файл. Обе ошибки отображаются в строках последовательности много раз, пока оператор "пакетная рекурсия превышает пределы стека" не сравнится, остановив рекурсию. Кто-то может найти ошибку в скрипте?
@echo off
set /a base1=3
set /a base2=3
set /a order=3
call :pow %base1%, %base2%, %order%
EXIT /B %ERRORLEVEL%
:pow
set /a base11=%~1
set /a base22=%~2
set /a order1=%~3
order1=order1-1
base22=base11*base22
if %order1% GTR 0 (call :pow %base11%, %base22%, %order1%)
else(echo the calculated pow is %base22%)
EXIT /B 0
1 ответ
Вот как я мог бы рассмотреть возможность сделать это в командном файле:
@Echo Off
Set "num1=3"
Set "num2=3"
Set "expo=3"
Set/A base=num1*num2
Set "rslt=1"
For /L %%A In (1 1 %expo%) Do Set/A rslt*=base
Echo %rslt%
Pause
Просто знайте, что вы будете строго ограничены максимальными 32-битными целыми числами.