0277 - Vârfuri: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/277/varfuri] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar prog...)
 
Linia 1: Linia 1:
Sursa: [https://www.pbinfo.ro/probleme/277/varfuri]
Sursa: [https://www.pbinfo.ro/probleme/277/varfuri]
== Cerinţa ==
== Cerinţa ==
Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule.
Într-un şir de numere naturale se numeşte '''vârf''' un element care are doi vecini şi este strict mai mare decât aceştia.
 
Se dă un şir cu '''n''' elemente, numere naturale. Calculaţi suma elementelor din şir care sunt vârfuri.
 
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n'''.

Versiunea de la data 26 martie 2023 09:43

Sursa: [1]

Cerinţa

Într-un şir de numere naturale se numeşte vârf un element care are doi vecini şi este strict mai mare decât aceştia.

Se dă un şir cu n elemente, numere naturale. Calculaţi suma elementelor din şir care sunt vârfuri.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 0 < n ⩽ 10

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

#0277
def validate_input(n, a):
    if not 1 <= n <= 1000:
        print("Numarul de elemente trebuie sa fie intre 1 si 1000.")
        return False
    for x in a:
        if not 0 <= x <= 9999:
            print("Toate elementele trebuie sa aiba cel mult 4 cifre.")
            return False
    return True


def calculate_sum_of_peaks(n, a):
    suma = 0
    for i in range(1, n-1):
        if a[i] > a[i-1] and a[i] > a[i+1]:
            suma += a[i]
    return suma


if __name__ == '__main__':
    n = int(input("Introduceti numarul de elemente: "))
    a = list(map(int, input("Introduceti elementele separate prin spatiu: ").split()))

    if validate_input(n, a):
        suma = calculate_sum_of_peaks(n, a)
        print("Suma elementelor care sunt varfuri este:", suma)