McNuggets problem: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
Not a robot (talk | contribs) (Add CLU) |
||
Line 488: | Line 488: | ||
{{out}} |
{{out}} |
||
<pre>Maximum non-McNuggets number is 43</pre> |
<pre>Maximum non-McNuggets number is 43</pre> |
||
=={{header|CLU}}== |
|||
<lang clu>% Recursive nugget iterator. |
|||
% This yields all the nugget numbers of the given box sizes from start to max. |
|||
gen_nuggets = iter (start, max: int, sizes: sequence[int]) yields (int) |
|||
si = sequence[int] |
|||
if si$empty(sizes) then |
|||
yield(start) |
|||
else |
|||
for i: int in int$from_to_by(start, max, si$bottom(sizes)) do |
|||
for j: int in gen_nuggets(i, max, si$reml(sizes)) do |
|||
yield(j) |
|||
end |
|||
end |
|||
end |
|||
end gen_nuggets |
|||
start_up = proc () |
|||
max = 100 |
|||
ab = array[bool] |
|||
po: stream := stream$primary_output() |
|||
nuggets: ab := ab$fill(0,max+1,false) |
|||
for nugget: int in gen_nuggets(0, max, sequence[int]$[6,9,20]) do |
|||
nuggets[nugget] := true |
|||
end |
|||
maxn: int |
|||
for i: int in ab$indexes(nuggets) do |
|||
if ~nuggets[i] then maxn := i end |
|||
end |
|||
stream$putl(po, "Maximum non-McNuggets number: " || int$unparse(maxn)) |
|||
end start_up</lang> |
|||
{{out}} |
|||
<pre>Maximum non-McNuggets number: 43</pre> |
|||
=={{header|COBOL}}== |
=={{header|COBOL}}== |