1907 - Numar Minim: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 4: Line 4:
Programul citește de la tastatură numărul '''n''', iar apoi numărul '''k'''
Programul citește de la tastatură numărul '''n''', iar apoi numărul '''k'''
== Date de ieşire ==
== Date de ieşire ==
Programul va afișa pe ecran numărul cerut.
Dacă datele sunt introduse corect,pe ecran se va afișa :'''"Datele sunt introduse corect."''',apoi pe un rând nou numărul cerut.În cazul contrar,se va afișa pe ecran '''"Datele nu corespund restricțiilor impuse."'''.
== Restricții și precizări ==
== Restricții și precizări ==
* 0 ⩽ k ⩽ 8
* 0 ⩽ k ⩽ 8
Line 13: Line 13:
: 1
: 1
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele sunt introduse corect.
: 10
: 10


Line 20: Line 20:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# Definim o funcție care validează dacă numărul introdus pentru n este un număr între 0 și 1.000.000
def validare_date_numar(n):
def validare_date_numar(n):
     flag = False
     flag = False
Line 27: Line 28:
     return flag
     return flag


# Definim o funcție care validează dacă numărul introdus pentru k este un  număr între 0 și 8
def validare_date(k):
def validare_date(k):
     flag = False
     flag = False
Line 34: Line 36:
     return flag
     return flag


# Definim o funcție care va returna cel mai mic număr cu n cifre, având restul împărțirii la 9 egal cu k
def print_num(n, k):
def print_num(n, k):
     numar = ''
     numar = ''
Line 56: Line 59:
     return numar
     return numar


# Verificăm dacă numerele introduse sunt valide, iar dacă sunt, afișăm cel mai mic număr cu n cifre, având restul împărțirii la 9 egal cu k
if __name__ == '__main__':
if __name__ == '__main__':
   n = input()
   n = input()
   k = input()
   k = input()
   if validare_date_numar(n) and validare_date(k):
   if validare_date_numar(n) and validare_date(k):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       print("\nDatele sunt introduse corect.\n")
       numar = print_num(n, int(k))
       numar = print_num(n, int(k))
       print(numar)
       print(numar)
   else:
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 16:20, 11 April 2023

Cerinţa[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi numărul k

Date de ieşire[edit | edit source]

Dacă datele sunt introduse corect,pe ecran se va afișa :"Datele sunt introduse corect.",apoi pe un rând nou numărul cerut.În cazul contrar,se va afișa pe ecran "Datele nu corespund restricțiilor impuse.".

Restricții și precizări[edit | edit source]

  • 0 ⩽ k ⩽ 8
  • 1 ⩽ n ⩽ 1.000.000

Exemplu[edit | edit source]

Intrare
2
1
Ieșire
Datele sunt introduse corect.
10

Explicație[edit | edit source]

10 este cel mai mic număr de 2 cifre care da restul 1 la împărţirea cu 9.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Definim o funcție care validează dacă numărul introdus pentru n este un număr între 0 și 1.000.000

def validare_date_numar(n):

   flag = False
   if n.isdigit():
       if 0 <= int(n) <= 1_000_000:
           flag = True
   return flag
  1. Definim o funcție care validează dacă numărul introdus pentru k este un număr între 0 și 8

def validare_date(k):

   flag = False
   if k.isdigit():
       if 0 <= int(k) <= 8:
           flag = True
   return flag
  1. Definim o funcție care va returna cel mai mic număr cu n cifre, având restul împărțirii la 9 egal cu k

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
  1. Verificăm dacă numerele introduse sunt valide, iar dacă sunt, afișăm cel mai mic număr cu n cifre, având restul împărțirii la 9 egal cu k

if __name__ == '__main__':

  n = input()
  k = input()
  if validare_date_numar(n) and validare_date(k):
      print("\nDatele sunt introduse corect.\n")
      numar = print_num(n, int(k))
      print(numar)
  else:
      print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>