0355 - N Minim: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 5: Line 5:
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere întregi, separate prin spaţii.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere întregi, separate prin spaţii.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran numărul '''MIN''', reprezentând cel mai mic dintre cele '''n''' numere date.
Programul afișează pe ecran pt fiecare vlaoare introdusa corect textul "Valorile au numarul de cifre corespunzator." iar in caz contrar "Valorile nu au numarul de cifre corespunzator.", ulterior va fi afisat numarul '''MIN''', reprezentând cel mai mic dintre cele '''n''' numere date.
== Restricții și precizări ==
== Restricții și precizări ==
* 1 ≤ n ≤ 1000
* 1 ≤ n ≤ 1000
* cele '''n''' numere citite vor avea cel mult '''9''' cifre
* cele '''n''' numere citite vor avea cel mult '''9''' cifre
== Exemplu ==
== Exemplu 1 ==
; Date de intrare
; Date de intrare
:5
:5
Line 15: Line 15:
; Date de ieșire
; Date de ieșire
:6
:6
== Exemplu 2 ==
; Date de intrare
:3
:1, 6, 76968549875
; Date de ieșire
:1
== Exemplu 3 ==
; Date de intrare
:5
:17 65 29 67 8
; Date de ieșire
:8
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n = int(input("Introduceți numărul de valori: "))
def citeste_n():
mini = None
    while True:
for i in range(n):
        try:
    try:
            n = int(input("Introduceti numarul de valori: "))
        x = int(input("Introduceți o valoare: "))
            if n >= 1 or n < 1000:
         if mini is None or x <mini:
                print("Numarul este cuprins intre 1 si 1000.")
             mini = x
            else:
     except ValueError:
                print("Numarul trebuie sa fie cuprins intre 1 si 1000.")
        print("Introduceți doar numere întregi.")
                break
        except ValueError:
            print("Trebuie introduse doar numere intregi.")
 
def nrcifre(nr):
    nrcif = 0
    while nr != 0:
        nrcif += 1
        nr //= 10
    return nrcif
 
def citeste_valori(n):
    valori = []
    for i in range(n):
        valoare = input("Introduceti o valoare: ")
        try:
            cifre = nrcifre(int(valoare))
            if cifre <= 9:
                print("Valorile au numarul de cifre corespunzator.")
                valori.append(int(valoare))
            else:
                print("Valorile nu au numarul de cifre corespunzator.")
                break
        except ValueError:
            print("Trebuie introduse doar valori cu mai putin de 9 cifre.")
            break
    return valori
 
def numarul_minim(valori):
    min = None
    for x in valori:
         if min is None or x < min:
             min = x
     return min
 
if __name__ == '__main__':
    n = citeste_n()
    valori = citeste_valori(n)
    min = numarul_minim(valori)
    print("Numarul minim este:", min)


if mini is not None:
    print("Valoarea minimă este:", mini)
else:
    print("Nu s-au introdus valori corecte.")
</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:40, 27 March 2023

Sursă: [1]

Cerință

Se dau n numere întregi. Calculaţi cel mai mic dintre cele n numere date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spaţii.

Date de ieșire

Programul afișează pe ecran pt fiecare vlaoare introdusa corect textul "Valorile au numarul de cifre corespunzator." iar in caz contrar "Valorile nu au numarul de cifre corespunzator.", ulterior va fi afisat numarul MIN, reprezentând cel mai mic dintre cele n numere date.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • cele n numere citite vor avea cel mult 9 cifre

Exemplu 1

Date de intrare
5
7 6 9 6 8
Date de ieșire
6

Exemplu 2

Date de intrare
3
1, 6, 76968549875
Date de ieșire
1

Exemplu 3

Date de intrare
5
17 65 29 67 8
Date de ieșire
8

Rezolvare

<syntaxhighlight lang="python" line="1"> def citeste_n():

   while True:
       try:
           n = int(input("Introduceti numarul de valori: "))
           if n >= 1 or n < 1000:
               print("Numarul este cuprins intre 1 si 1000.")
           else:
               print("Numarul trebuie sa fie cuprins intre 1 si 1000.")
               break
       except ValueError:
           print("Trebuie introduse doar numere intregi.")

def nrcifre(nr):

   nrcif = 0
   while nr != 0:
       nrcif += 1
       nr //= 10
   return nrcif

def citeste_valori(n):

   valori = []
   for i in range(n):
       valoare = input("Introduceti o valoare: ")
       try:
           cifre = nrcifre(int(valoare))
           if cifre <= 9:
               print("Valorile au numarul de cifre corespunzator.")
               valori.append(int(valoare))
           else:
               print("Valorile nu au numarul de cifre corespunzator.")
               break
       except ValueError:
           print("Trebuie introduse doar valori cu mai putin de 9 cifre.")
           break
   return valori

def numarul_minim(valori):

   min = None
   for x in valori:
       if min is None or x < min:
           min = x
   return min

if __name__ == '__main__':

   n = citeste_n()
   valori = citeste_valori(n)
   min = numarul_minim(valori)
   print("Numarul minim este:", min)

</syntaxhighlight>