1907 - Numar Minim

From Bitnami MediaWiki
Revision as of 21:33, 21 March 2023 by Alexandra Leș (talk | contribs) (Pagină nouă: == 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şir...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>