3291 - Memory010
Cerinţa
Se citesc numere naturale cuprinse între 1 și 30.000.000 până la întâlnirea numărului 0. Să se afișeze valoarea duplicat.
Date de intrare
Programul citește de la tastatură maxim 1.000.000 de numere cuprinse între 1 și 30.000.000.
Date de ieșire
Programul va afișa pe ecran numărul d, reprezentând valoarea duplicată.
Restricţii şi precizări
- între numerele citite se află cu siguranță un număr duplicat
Exemplu
- Intrare
- 12 3 8 10 5 8 2 0
- Iesire
- 8
Rezolvare
<syntaxhighlight lang="python" line> def find_duplicate(numbers):
numere_intalnite = set() # Creăm un set pentru a urmări numerele întâlnite for numar in numbers: if numar in numere_intalnite: # Dacă numărul a fost întâlnit deja return numar # Returnăm numărul duplicat numere_intalnite.add(numar) # Altfel, adăugăm numărul în set return None # Dacă nu găsim niciun număr duplicat, returnăm None
def main():
numere = [] while True: numar = int(input("Introduceți un număr (0 pentru a opri citirea): ")) if numar == 0: break # Ieșim din buclă dacă se introduce 0 numere.append(numar) # Adăugăm numărul în lista numere
duplicat = find_duplicate(numere) # Căutăm valoarea duplicat
if duplicat is not None: # Dacă am găsit un duplicat print("Valoarea duplicat este:", duplicat) else: print("Nu s-a găsit niciun număr duplicat.") # Altfel, afișăm un mesaj
if __name__ == "__main__":
main()
</syntaxhighlight>