Advertisement
Guest User

eHázi q/25694

a guest
Oct 31st, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. """
  2. list[:] működése (ha esetleg nem ismernéd)
  3.  
  4. >>> list = [0,1,2,3]
  5. >>> list[:2]
  6. [0,1]
  7. >>> list[2:]
  8. [2,3]
  9. >>> list[1:3]
  10. [1,2]
  11.  
  12. ha többet akarsz róla tudni, akkor keress rá, hogy list slicing
  13. """
  14.  
  15.  
  16. stairs = [30,60,10,40,60]
  17. max_step = 100
  18.  
  19. def main(stairs, max_step):
  20.     p = possibilities(stairs, max_step) #elindítja a rekurziót
  21.     print(p)
  22.  
  23. def possibilities(stairs, max_step):
  24.     if (len(stairs) == 1 and stairs[0] <= max_step) or len(stairs)==0:
  25.         #ha pontosan egy (megléphető) lépcső van, vagy nincs több
  26.         return 1
  27.  
  28.     p = 0 #lehetőségek száma
  29.     for i in range(1,len(stairs)+1): #hány lépcsőt lépek meg egyszerre
  30.         # len(stairs)+1, mivel len(stairs) mondjuk 4 lépcsőnél csak 3-ig számol el
  31.  
  32.         if sum(stairs[:i]) > max_step:
  33.             #ha eddig a lépcsők magassága több a megléphetőnél, akkor ne számoljon tovább
  34.             break
  35.         else:
  36.             #vegye ezt a lépcsőt kezdőnek, és számolja innentől ugyanúgy
  37.             p += possibilities(stairs[i:], max_step)
  38.     return p
  39.  
  40. main(stairs, max_step)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement