Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Doar cu !!!!! IF si WHILE !!!!!!!!!!

Cerinta:

Un șir munte este un șir în care există un singur indice i ce verifică proprietațiile:


2 ≤ i ≤ N - 1, unde N reprezintă numarul de elemente din șir

toate elementele de la 1 pană la i sunt în ordine strict crescătoare

toate elementele de la i până la N sunt în ordine strict descrescătoare

Se dă un șir format din N numere. Să se verifice dacă șirul dat reprezintă sau nu un șir munte.


Date de intrare:

Pe prima linie se află N, dimensiunea șirului. Pe următoarea linie sunt N numere naturale, elementele șirului reprezentând măsurătorile lui George.


Date de ieșire:

Se va afișa un singur număr: 1 dacă șirul dat este munte, sau 0 în caz contrar.


Restricții:

3 ≤ N ≤ 500

Elementele șirului sunt numere naturale mai mici decât 1.000.000


boiustef: e de pe pbinfo?
dacă da, scrie numele sau numprul problemei...
Utilizator anonim: Am primit-o ca tema si nu stiu de unde este :|
Utilizator anonim: Nu prea inteleg cum ar trebuii sa functioneze codul

Răspunsuri la întrebare

Răspuns de ms154
0

Răspuns:

Iti trimit o solutie de 100p verificata. Numerele prime se verifica intr-o functie. Succes!

#include <iostream>

using namespace std;

int x, j, n;

bool ok;

bool nrprim(int nr)

{

   int i;

   bool prim = true;

   for(i = 2; i * i <= nr; i ++)

       if(nr % i == 0)

   {

       prim = false;

       break;

   }

   return prim;

}

int main()

{

   cin >> n;

   for(j = 1; j <= n; j ++)

   {

       cin >> x;

       if(nrprim(x)) ok = true;

   }

   if(ok) cout << "DA";

     else cout << "NU";

   return 0;

}

Explicație:


Utilizator anonim: Salut, am mentionat ca trebuie doar cu if si while
Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int N, a,b, st_cr=1, st_descr=1, i, gasit=0, gasit2=0;

   cin >> N;

   cin >> a >> b;

   i=2;

   while (a<b && i<N-1) {

       ++st_cr; gasit=1;

       a=b; cin >> b;

       ++i;

   }

   if (i==N && a>b) {

       ++st_descr;

       gasit2=1;

   }

   else {

       a=b; cin >> b; ++i;

       if (a>b && i<=N) {++st_descr; gasit2=1;}

       while (a>b && i<N) {

           ++st_descr; gasit2=1;

           a=b; cin >> b;

           ++i;

       }

   }

   if (gasit && gasit2 && st_cr+st_descr==N) cout << 1;

   else cout << 0;

   return 0;

}

Explicație:

Cu vector este cu mult mai simplă logica... aici e nu prea...

Sper să te descurci cu acest cod... De sunt întrebări, sunt aici..

Succese!


Utilizator anonim: Vreau doar sa inteleg cum ai procedat in a rezolva problema. Si eu consider ca este o rezolvare mult m-ai complicata doar prin if si while. Multumesc mult
Alte întrebări interesante