1255 - Lipsa: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
Line 22: | Line 22: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | #1255 | ||
def | def read_numbers(): | ||
n = int(input("Introdu un nr. N urmat de N numere:")) | |||
nums = list(map(int, input().split())) | |||
return n, nums | |||
return | |||
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 | def display_missing_number(missing_num): | ||
print(missing_num) | |||
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. |
Revision as of 10:48, 1 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.
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)
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.