0621 - Numar Lipsa: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: ==Cerința== Se dă un șir cu n numere naturale. Determinați cel mai mic număr natural nenul care nu apare printre numerele date. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale. ==Date de ieșire== Programul va afișa pe ecran numărul determinat X. ==Restricții și precizări== *1 ≤ n ≤ 100; *cele n numere citite vor fi mai mici decât 1.000.000.000; ==Exemplul 1== ;Intrare :5 :4 2 7 6 1 ;Ieșire :Datele de intrare cor... |
Adina Timiș (talk | contribs) No edit summary |
||
Line 23: | Line 23: | ||
:Datele de intrare nu corespund restricțiilor impuse. | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line=""> | <syntaxhighlight lang="python" line="1"> | ||
#0621 - Numar Lipsa | #0621 - Numar Lipsa | ||
def gaseste_numar(n, numere): | def gaseste_numar(n, numere): # definim o functie care cauta cel mai mic numar natural nenul care | ||
numere_date = set(numere) | # nu apare in lista data | ||
for i in range(1, max(numere_date) + 2): | numere_date = set(numere) # convertim lista de numere intr-un set pentru a elimina dublurile | ||
if i not in numere_date: | for i in range(1, max(numere_date) + 2): # iteram prin numerele de la 1 pana la maximul din set | ||
# plus 2, trebuie sa cautam pana la urmatorul numar | |||
# natural nenul | |||
if i not in numere_date: # daca numarul nu se gaseste in set, atunci il returnam | |||
return i | return i | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = int(input("Introduceți numărul de cifre din șir: ")) | n = int(input("Introduceți numărul de cifre din șir: ")) # citim numarul de cifre din sir si | ||
# lista de numere de la tastatura | |||
numere = list(map(int, input("Introduceți cifrele separate prin spațiu: ").split())) | numere = list(map(int, input("Introduceți cifrele separate prin spațiu: ").split())) | ||
if n < 1 or n > 100 or max(numere) > 1000000000: | if n < 1 or n > 100 or max(numere) > 1000000000: # verificarea restrictiilor | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
else: | else: | ||
print("Datele de intrare corespund restricțiilor impuse.") | print("Datele de intrare corespund restricțiilor impuse.") | ||
X = gaseste_numar(n, numere) | X = gaseste_numar(n, numere) # apelam functia si afisam rezultatul | ||
print(f"Cel mai mic număr natural nenul care nu apare în șirul dat este: {X}") | print(f"Cel mai mic număr natural nenul care nu apare în șirul dat este: {X}") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 22:20, 28 April 2023
Cerința[edit | edit source]
Se dă un șir cu n numere naturale. Determinați cel mai mic număr natural nenul care nu apare printre numerele date.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul determinat X.
Restricții și precizări[edit | edit source]
- 1 ≤ n ≤ 100;
- cele n numere citite vor fi mai mici decât 1.000.000.000;
Exemplul 1[edit | edit source]
- Intrare
- 5
- 4 2 7 6 1
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- Cel mai mic număr natural nenul care nu apare în șirul dat este: 3
Exemplul 2[edit | edit source]
- Intrare
- 0
- 1 2 4
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0621 - Numar Lipsa
def gaseste_numar(n, numere): # definim o functie care cauta cel mai mic numar natural nenul care
# nu apare in lista data numere_date = set(numere) # convertim lista de numere intr-un set pentru a elimina dublurile for i in range(1, max(numere_date) + 2): # iteram prin numerele de la 1 pana la maximul din set # plus 2, trebuie sa cautam pana la urmatorul numar # natural nenul if i not in numere_date: # daca numarul nu se gaseste in set, atunci il returnam return i
if __name__ == "__main__":
n = int(input("Introduceți numărul de cifre din șir: ")) # citim numarul de cifre din sir si # lista de numere de la tastatura numere = list(map(int, input("Introduceți cifrele separate prin spațiu: ").split())) if n < 1 or n > 100 or max(numere) > 1000000000: # verificarea restrictiilor print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") X = gaseste_numar(n, numere) # apelam functia si afisam rezultatul print(f"Cel mai mic număr natural nenul care nu apare în șirul dat este: {X}")
</syntaxhighlight>