👤

Pb info problema 277
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, iar apoi cele n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul S, reprezentând suma elementelor din şir care sunt vârfuri.

Restricţii şi precizări
1 ≤ n ≤ 1000
cele n numere citite vor avea cel mult 4 cifre

Exemplu
Date de intrare
7
3 8 4 4 1 9 1

Date de ieșire
17


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n, v[1000];

   cin >> n;

   int i=1, S=0;

   for (i=1; i<=n; ++i )  cin >> v[i];

   i=2;

   while (i<n)

   {

       if (v[i]>v[i-1] && v[i]>v[i+1])

       {

           S+=v[i]; i+=2;

       }

       else ++i;

   }

   cout << S << endl;

   return 0;

}

Explicație:

Varianta simpla si intuitiva

#import <iostream>

using namespace std;

bool este_varf(int vector[], int pozitie)

{

return vector[pozitie] > vector[pozitie - 1] && vector[pozitie] > vector[pozitie + 1];

}

int main()

{

int *vector, numar_de_elemente, suma = 0;

cin >> numar_de_elemente;

vector = new int [numar_de_elemente];

for (int pozitie = 0; pozitie < numar_de_elemente; ++pozitie)

 cin >> vector[pozitie];

int pozitie = 1;

while (pozitie < numar_de_elemente - 1)

{

 if (este_varf(vector, pozitie))

 {

  suma += vector[pozitie];

  pozitie += 2;

 }

 else

  pozitie++;

}

cout << "Suma: " << suma << endl;

}

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!


Ze Schools: Alte intrebari