McNuggets problem: Difference between revisions
Content added Content deleted
(→{{header|Perl}}: Use standard arguments, change a couple helper functions.) |
(Added Algol 68) |
||
Line 13: | Line 13: | ||
number (a number ''n'' which cannot be expressed with ''6x + 9y + 20z = n'' |
number (a number ''n'' which cannot be expressed with ''6x + 9y + 20z = n'' |
||
where ''x'', ''y'' and ''z'' are natural numbers). |
where ''x'', ''y'' and ''z'' are natural numbers). |
||
=={{header|ALGOL 68}}== |
|||
<lang algol68>BEGIN |
|||
# Solve the McNuggets problem: find the largest n <= 100 for which there # |
|||
# are no non-negative integers x, y, z such that 6x + 9y + 20z = n # |
|||
INT max nuggets = 100; |
|||
[ 0 : max nuggets ]BOOL sum; |
|||
FOR i FROM LWB sum TO UPB sum DO sum[ i ] := FALSE OD; |
|||
FOR x FROM 0 BY 6 TO max nuggets DO |
|||
FOR y FROM 0 BY 9 TO max nuggets DO |
|||
FOR z FROM 0 BY 20 TO max nuggets DO |
|||
INT nuggets = x + y + z; |
|||
IF nuggets <= max nuggets THEN sum[ nuggets ] := TRUE FI |
|||
OD # z # |
|||
OD # y # |
|||
OD # x # ; |
|||
# show the highest number that cannot be formed # |
|||
INT largest := -1; |
|||
FOR i FROM UPB sum BY -1 TO LWB sum WHILE largest := i; sum[ i ] DO SKIP OD; |
|||
print( ( "The largest non McNugget number is: " |
|||
, whole( largest, 0 ) |
|||
, newline |
|||
) |
|||
) |
|||
END</lang> |
|||
{{out}} |
|||
<pre> |
|||
The largest non McNugget number is: 43 |
|||
</pre> |
|||
=={{header|AppleScript}}== |
=={{header|AppleScript}}== |