Jump to content

100 doors: Difference between revisions

added FreeBASIC
(added FreeBASIC)
Line 3,513:
END PROGRAM DOORS</lang>
=={{header|FreeBASIC}}==
===Toggle===
<lang freebasic>' version 27-10-2016
' compile with: fbc -s console
 
#Define max_doors 100
 
Dim As ULong c, n, n1, door(1 To max_doors)
 
' toggle, at start all doors are closed (0)
' 0 = door closed, 1 = door open
For n = 1 To max_doors
For n1 = n To max_doors Step n
door(n1) = 1 - door(n1)
Next
Next
 
' count the doors that are open (1)
Print "doors that are open nr: ";
For n = 1 To max_doors
If door(n) = 1 Then
Print n; " ";
c = c + 1
End If
Next
 
Print : Print
Print "There are " + Str(c) + " doors open"
 
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End</lang>
{{out}}
<pre>doors that are open nr: 1 4 9 16 25 36 49 64 81 100
 
There are 10 doors open</pre>
===Count===
<lang freebasic>' version 27-10-2016
' compile with: fbc -s console
 
#Define max_doors 100
 
Dim As ULong c, n, n1, door(1 To max_doors)
 
' at start all doors are closed
' simple add 1 each time we open or close a door
' doors with odd numbers are open
' doors with even numbers are closed
For n = 1 To max_doors
For n1 = n To max_doors Step n
door(n1) += 1
Next
Next
 
Print "doors that are open nr: ";
For n = 1 To max_doors
If door(n) And 1 Then
Print n; " ";
c = c + 1
End If
Next
 
Print : Print
Print "There are " + Str(c) + " doors open"
 
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End</lang>
Output is the same as the first version.
=== Optimized===
<lang freebasic>' version 27-10-2016
' compile with: fbc -s console
 
#Define max_doors 100
 
Dim As ULong c, n
 
Print "doors that are open nr: ";
For n = 1 To 10
Print n * n; " ";
c = c + 1
Next
 
Print : Print
Print "There are " + Str(c) + " doors open"
 
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End</lang>
Output is the same as the first version.
 
=={{header|Frink}}==
457

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.