| Novo znanje | Ideja |
|---|---|
| Grupno brojanje po blokovima | Ne prolazimo uvijek element po element, nego npr. posebno obradimo jednoznamenkaste, dvoznamenkaste, troznamenkaste brojeve |
| Faktorski parovi | Za N = R * S tražimo sve moguće parove djelitelja |
| Najbolji faktorski par | Među faktorima tražimo par s najmanjom razlikom |
| Smanjivanje potpune pretrage | Ako vrijedi A+B+C=N, biramo samo A i B, a C izračunamo |
| Maksimiziranje minimuma – maximin | Za svakog kandidata pronađemo njegov najlošiji/najbliži slučaj, pa biramo kandidata kod kojeg je taj minimum najveći |
| Više kriterija pri izboru | Ako je glavni kriterij jednak, uspoređujemo drugi, pa eventualno treći kriterij |
Ormarići su označeni brojevima od 1 do N. Odredi koliko je ukupno znamenki potrebno napisati.
Za N = 125:
n=int(input())
ukupno=0
pocetak=1
znamenki=1
while pocetak<=n:
kraj=min(n,pocetak*10-1)
koliko=kraj-pocetak+1
ukupno+=koliko*znamenki
pocetak*=10
znamenki+=1
print(ukupno)
Za ulaz:
125
izlaz je:
267
Znamo da je za zapis brojeva od 1 do nekog broja potrošeno ukupno Z znamenki. Odredi posljednji broj.