100 doors: Difference between revisions
Content added Content deleted
(added FreeBASIC) |
|||
Line 3,513: | Line 3,513: | ||
END PROGRAM DOORS</lang> |
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}}== |
=={{header|Frink}}== |