anonymous
  • anonymous
Write a function, called numPens that takes one argument, n, and returns True if it is possible to buy a combination of 5, 8 and 24 pack unit in Python.
Computer Science
chestercat
  • chestercat
I got my questions answered at brainly.com in under 10 minutes. Go to brainly.com now for free help!
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

Get this expert

answer on brainly

SEE EXPERT ANSWER

Get your free account and access expert answers to this
and thousands of other questions

Lyrae
  • Lyrae
How much python do you know? Do you know how to make a function? Do you have any code?
anonymous
  • anonymous
Yes I know how to make a function.
anonymous
  • anonymous
This is the exact question def numPens(n): """ n is a non-negative integer Returns True if some non-negative integer combination of 5, 8 and 24 equals n Otherwise returns False. """

Looking for something else?

Not the answer you are looking for? Search for more explanations.

More answers

Lyrae
  • Lyrae
@Syamantak Are you still there?
anonymous
  • anonymous
Yes
Lyrae
  • Lyrae
I think i might have a solution, but I to be honest with you I have more experience with Java, so i might not be the most optimal one.
anonymous
  • anonymous
Sorry the solution is not right , but nevertheless Thank You !
Lyrae
  • Lyrae
Do you have some kind of answer to compare against?
anonymous
  • anonymous
No there is no answer to compare against
Lyrae
  • Lyrae
Do we have to use all three of them or could we use combinations with only one or two of the diffrent packsizes? for example: n = 15 => 3*5 pack
anonymous
  • anonymous
We could use combination of any one any two or all three , we could also take a number twice and a number once
anonymous
  • anonymous
for example a=5,b=8 and c=24 and n can be anything.It must be done like a+b or 2(A+B) OR A+B+C
anonymous
  • anonymous
This is basically a variation of the old McNugget Problem. I am sure you can find lots on this on google. Here is a link to some related math, hope it helps http://www.mathnerds.com/best/mcnuggets/index.aspx
anonymous
  • anonymous
And here is McNuggets in Python, found on google. def McNuggets(n): if n == 0: return True for i in (6, 9, 20): if n >= i and McNuggets(n - i): return True return False
anonymous
  • anonymous
Slight adaption of my other post for fun. def McNuggets(sizes,n): if n == 0: return True for i in (sizes): if n >= i and McNuggets(sizes,n - i): return True return False for i in range(50): print(i,McNuggets((6,9,20),i)) for i in range(50): print(i,McNuggets((5,8,24),i))
anonymous
  • anonymous
Lyrae, the only difference in output between the two seems to be at 0, mine shows True and yours shows False. Not sure which would be considered more accurate.
Lyrae
  • Lyrae
It's probably yours, mine seem to fail at higer values(?) And also, recursive functions are awesome ;)
Lyrae
  • Lyrae
Thinking about it, is 0 even considered a possitive integer(?)
anonymous
  • anonymous
I would think no. Something interesting about the second function I posted is you can send it any set of sizes like below with 4 sizes without changing the function.. for i in range(50): print(i,McNuggets((6,9,25,31),i))
Lyrae
  • Lyrae
Here're 3 different implementations of the same problem and they all preform equal. Like @msmithhnova said it's probably a slight modification on the McNuggets Problem. def numPens(n): i = 0 while i <= n: j = i; while j <= n: k = j while k <= n: if k == n: return True k += 24 j += 8 i += 5 return False def numPens(n): if n == 0: return True for i in (5, 8, 24): if n >= i and numPens(n - i): return True return False def numPens(n): if n == 0: return True elif n < 0: return False elif numPens(n - 24) or numPens(n - 8) or numPens(n - 5): return True else: return False

Looking for something else?

Not the answer you are looking for? Search for more explanations.