1255 - Lipsa: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
Line 9: | Line 9: | ||
Programul va conține pe prima linie numărul căutat. | Programul va conține pe prima linie numărul căutat. | ||
Dacă datele sunt introduse corect, | Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează numărul lipsă . | ||
În | În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.") | ||
== Restricţii şi precizări == | == Restricţii şi precizări == |
Revision as of 09:20, 25 April 2023
Sursa: [1]
Cerinţa
Se dau n - 1 numere naturale distincte de la 1 la n. Să se gaseasca numărul lipsă.
Date de intrare
Programul conține pe prima linie numărul n, iar pe a doua linie n - 1 numere naturale separate prin spații.
Date de ieșire
Programul va conține pe prima linie numărul căutat.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează numărul lipsă .
În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.")
Restricţii şi precizări
2 ≤ n ≤ 1.000.000
Exemplul 1
- Intrare
- 5
- 5 3 1 2
- Ieșire
- 4
Rezolvare
<syntaxhighlight lang="python" line>
- 1255
def read_numbers():
n = int(input("Introdu un nr. N urmat de N numere:")) nums = list(map(int, input().split())) return n, nums
def calculate_missing_number(n, nums):
sum_given = sum(nums) sum_n = (n * (n+1)) // 2 missing_num = sum_n - sum_given return missing_num
def display_missing_number(missing_num):
print(missing_num)
if __name__ == '__main__':
n, nums = read_numbers() missing_num = calculate_missing_number(n, nums) display_missing_number(missing_num)
</syntaxhighlight>
Explicatie cod:
Acest cod implementează o funcție care primește un număr N urmat de N numere și calculează numărul lipsă dintr-o secvență de numere consecutive.
Funcția read_numbers primește input-ul de la utilizator, citind întâi numărul N și apoi lista de N numere sub formă de șir de caractere. Lista de numere este transformată într-o listă de întregi folosind funcția map și int, apoi sunt returnate atât numărul N cât și lista de numere.
Funcția calculate_missing_number primește numărul N și lista de numere ca parametri și calculează suma numerelor date și suma primelor n numere naturale. Diferența dintre cele două este numărul lipsă, care este returnat.
Funcția display_missing_number primește numărul lipsă și îl afișează.
În final, se apelează cele trei funcții în ordine pentru a citi input-ul de la utilizator, a calcula numărul lipsă și a-l afișa.