100 doors: Difference between revisions

Content deleted Content added
Hakank (talk | contribs)
Line 4,913:
# [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ]</lang>
 
=={{header|GFA BasicGenie}}==
 
<lang basicgenie>
'// 100 doors problem
'
init
' 100 doors problem
 
'
// 100 elements array of boolean type
DIM doors!(101) ! use indices 1 to 100
doors:bool[100]
@close_doors
ENDIF
@do_passes
for FORvar i% = 1 TOto 100
@show_doors
doors[i] = false // set all doors closed
'
PROCEDURE close_doors
ARRAYFILL doors!(),FALSE
for FORvar i% = 1 TOto 100
RETURN
j:int = i
'
while j <= 100 do
PROCEDURE do_passes
doors!([j%)] =NOT not doors!([j%)]
LOCAL i%,j%
j = j + i
FOR i%=1 TO 100
FOR j%=i% TO 100 STEP i%
print("Doors open: ")
doors!(j%)=NOT doors!(j%)
for var i = NEXT1 j%to 100
IF if doors!([i%)]
NEXT i%
stdout.printf ("%d ", i)
RETURN
'
PROCEDURE show_doors
LOCAL i%
OPENW 1
CLEARW 1
FOR i%=1 TO 100
IF doors!(i%)
PRINT "Door ";i%;" is open"
ENDIF
NEXT i%
PRINT "(press a key to end program)"
~INP(2)
CLOSEW 1
RETURN
</lang>