RosettaCodeData/Task/Hailstone-sequence/Batch-File/hailstone-sequence-1.bat

42 lines
577 B
Batchfile
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
@echo off
setlocal enabledelayedexpansion
2015-11-18 06:14:39 +00:00
echo.
::Task #1
call :hailstone 111
echo Task #1: (Start:!sav!)
echo !seq!
echo.
echo Sequence has !cnt! elements.
echo.
::Task #2
call :hailstone 27
echo Task #2: (Start:!sav!)
echo !seq!
echo.
echo Sequence has !cnt! elements.
echo.
pause>nul
exit /b 0
2013-04-10 21:29:02 -07:00
2015-11-18 06:14:39 +00:00
::The Function
2013-04-10 21:29:02 -07:00
:hailstone
set num=%1
2015-11-18 06:14:39 +00:00
set seq=%1
set sav=%1
set cnt=0
2013-04-10 21:29:02 -07:00
:loop
2015-11-18 06:14:39 +00:00
set /a cnt+=1
if !num! equ 1 goto :eof
set /a isodd=%num%%%2
if !isodd! equ 0 goto divideby2
set /a num=(3*%num%)+1
set seq=!seq! %num%
2013-04-10 21:29:02 -07:00
goto loop
2015-11-18 06:14:39 +00:00
2013-04-10 21:29:02 -07:00
:divideby2
2015-11-18 06:14:39 +00:00
set /a num/=2
set seq=!seq! %num%
2013-04-10 21:29:02 -07:00
goto loop