1255 - Lipsa: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 22: Line 22:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#1255
def patrate_perfecte(n):
def read_numbers():
     patrate = []
     n = int(input("Introdu un nr. N urmat de N numere:"))
     i = 1
     nums = list(map(int, input().split()))
    while len(patrate) < n:
     return n, nums
        patrat = i * i
        patrate.append(patrat)
        i += 1
     return patrate


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 calculeaza(numbers):
def display_missing_number(missing_num):
     product = 1
     print(missing_num)
    for number in numbers:
        product *= number
    return product


n, nums = read_numbers()
missing_num = calculate_missing_number(n, nums)
display_missing_number(missing_num)


def validare_numar(n):
    if n < 1 or n > 10:
        return False
    return True


</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.


if __name__ == '__main__':
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.
    n = int(input("Introduceți numărul n: "))
    if not validare_numar(n):
        print("Datele introduse nu corespund cerintelor.")
    else:
        squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)


Funcția display_missing_number primește numărul lipsă și îl afișează.


</syntaxhighlight>
Î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>

  1. 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.