1907 - Numar Minim
Cerinţa
Georgiana, pregătindu-se de olimpiada locală de matematică, a primit de la doamna profesoară următoarea problemă: Dându-se numerele n şi k, să se afle cel mai mic număr de n cifre, cu restul împărţirii la 9 egal cu k. Dacă o ajutaţi, ea va primi nota 10 iar voi veţi primi 100 de puncte.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi numărul k
Date de ieşire
Programul va afișa pe ecran numărul cerut.
Restricții și precizări
- 0 ⩽ k ⩽ 8
- 1 ⩽ n ⩽ 1.000.000
Exemplu
- Intrare
- 2 1
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 10
Explicație
10 este cel mai mic număr de 2 cifre care da restul 1 la împărţirea cu 9.
Rezolvare
<syntaxhighlight lang="python" line> def validare_date_numar(n):
flag = False if n.isdigit(): if 0 <= int(n) <= 1_000_000: flag = True return flag
def validare_date(k):
flag = False if k.isdigit(): if 0 <= int(k) <= 8: flag = True return flag
def print_num(n, k):
numar = if k == 0: numar = "1" + "0" * (int(n) - 2) + "8" elif k == 1: numar = "1" + "0" * (int(n) - 2) + "0" elif k == 2: numar = "1" + "0" * (int(n) - 2) + "1" elif k == 3: numar = "1" + "0" * (int(n) - 2) + "2" elif k == 4: numar = "1" + "0" * (int(n) - 2) + "3" elif k == 5: numar = "1" + "0" * (int(n) - 2) + "4" elif k == 6: numar = "1" + "0" * (int(n) - 2) + "5" elif k == 7: numar = "1" + "0" * (int(n) - 2) + "6" elif k == 8: numar = "1" + "0" * (int(n) - 2) + "7" return numar
if __name__ == '__main__':
n = input() k = input() if validare_date_numar(n) and validare_date(k): print("\nDatele de intrare corespund restricțiilor impuse.\n") numar = print_num(n, int(k)) print(numar) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>