RosettaCodeData/Task/Digital-root/Batch-File/digital-root.bat

45 lines
673 B
Batchfile

::
::Digital Root Task from Rosetta Code Wiki
::Batch File Implementation
::
::Base 10...
::
@echo off
setlocal enabledelayedexpansion
::THE MAIN THING...
for %%x in (9876543214 393900588225 1985989328582 34559) do (
call :droot %%x
)
echo.
pause
exit /b
::/THE MAIN THING...
::THE FUNCTION
:droot
set inp2sum=%1&set persist=1
:cyc1
set sum=0
set scan_digit=0
:cyc2
set digit=!inp2sum:~%scan_digit%,1!
if "%digit%"=="" (goto :sumdone)
set /a sum+=%digit%
set /a scan_digit+=1
goto :cyc2
:sumdone
if %sum% lss 10 (
echo.
echo ^(%1^)
echo Additive Persistence=%persist% Digital Root=%sum%.
goto :EOF
)
set /a persist+=1
set inp2sum=%sum%
goto :cyc1
::/THE FUNCTION