Bankovky

In [1]:
platidla = [1,2,5,10,20,50,100,200,500,1000,2000,5000]
suma = 99

for bank in reversed(platidla): #zacneme najvyssou bankovkou
    while bank <= suma: #plat bankovkou, kym sa da
        suma -= bank
        print(bank)
50
20
20
5
2
2
In [2]:
platidla = [3**i for i in range(10)] #mocniny trojky
suma = 99

for bank in reversed(platidla): #zacneme najvyssou bankovkou
    while bank <= suma: #plat bankovkou, kym sa da
        suma -= bank
        print(bank)
81
9
9
In [3]:
platidla = [1,2,5,10,20,50,100,200,500,1000,2000,4700,5000]
suma = 9400 #

for bank in reversed(platidla): #zacneme najvyssou bankovkou
    while bank <= suma: #plat bankovkou, kym sa da
        suma -= bank
        print(bank)
5000
2000
2000
200
200

Kartičky

Dokážte alebo vyvráťte: ak mámenkartičiek a na každej napísané nejaké kladné celé číslo, vieme určite vybraťneprádznu podmnožinu kartičiek so súčtom, ktorý je násobkom číslan.

Ak je tam číslo deliteľné n, tak stačí jedna kartička.

Pre n=7 vyskúšame všetky dvojice.

In [23]:
from random import randint
cisla = [randint(1, 100) for _ in range(7)]
print(cisla)
for i in range(6): #hladame dvojice prvkov s indexami i < j 
    for j in range(i+1, 7):
        if (cisla[i]+cisla[j]) % 7 == 0:
            print(cisla[i], cisla[j])
[74, 11, 48, 33, 47, 19, 98]
In [ ]: