looping through possible combinations of McNuggets packs of 6, 9 and 20
Peter Otten
__peter__ at web.de
Thu Aug 12 21:02:40 CEST 2010
Baba wrote:
> Thank You for helping me out. Indeed i am not looking for the code but
> rather for hints that direct my reasoning as well as hints as to how
> to write basic programs like this.
>
> You have broken down the approach into 2 parts. I have tried to solve
> part 1 but i'm not quite there yet. Here's my code:
>
> def can_buy(n_nuggets):
> for a in range (1,n_nuggets):
> for b in range (1,n_nuggets):
> for c in range (1,n_nuggets):
> if 6*a+9*b+20*c==n_nuggets:
> #print a,b,c,'n_nuggets=',n_nuggets
> return True
> else:
> return False
>
>
> can_buy(55)
>
> as you can see i am trying to loop through all combinations of values
> bewtween 1 and n_nuggets and when the equation resolves it should
> return True, else it should return False.
>
> I was hoping that when i then call my function and ask it to test a
> value nothing happens. What is wrong? My syntax? My semantic? Both?
First, the function gives up too early; it should only return False when all
combinations of a, b, c (technically: the product of the ranges) have been
tried.
Second, can_buy(0) should return True, but the solution 0*6 + 0*9 + 0*20 is
never tried; fix your ranges accordingly.
Peter
More information about the Python-list
mailing list