Haskell, 36 bytes
f n|n<1=n==0
f n=any(f.(n-))[6,9,20]
Explanation
This solution is about as straightforward as it can get. The first line declares that for any number less than 1 it is a McNugget number if n==0
. That is to say that 0
is a McNugget number and all negative numbers are not.
The second line declares that for all other numbers, n
is a McNugget number if it minus any of the Nugget sizes is a McNugget number.
This is a pretty simple recursive search.