Power set: Difference between revisions

Added BBC BASIC
(Closed lang tag properly)
(Added BBC BASIC)
Line 162:
}
MsgBox % RegExReplace(SubStr(t,1,StrLen(t)-1),",}","}")</lang>
 
=={{header|BBC BASIC}}==
The elements of a set are represented as the bits in an integer (hence the maximum size of set is 32).
<lang bbcbasic> DIM list$(3) : list$() = "1", "2", "3", "4"
PRINT FNpowerset(list$())
END
DEF FNpowerset(list$())
IF DIM(list$(),1) > 31 ERROR 100, "Set too large to represent as integer"
LOCAL i%, j%, s$
s$ = "{"
FOR i% = 0 TO (2 << DIM(list$(),1)) - 1
s$ += "{"
FOR j% = 0 TO DIM(list$(),1)
IF i% AND (1 << j%) s$ += list$(j%) + ","
NEXT
IF RIGHT$(s$) = "," s$ = LEFT$(s$)
s$ += "},"
NEXT i%
= LEFT$(s$) + "}"</lang>
'''Output:'''
<pre>
{{},{1},{2},{1,2},{3},{1,3},{2,3},{1,2,3},{4},{1,4},{2,4},{1,2,4},{3,4},{1,3,4},{2,3,4},{1,2,3,4}}
</pre>
 
=={{header|C}}==