👤

Buna! Am de facut problema #189 NumarMunte de pe Pbinfo, dar este o problema cu algoritmul meu. Daca imi puteti spune de ce ar fii super!
Multumesc!


Buna Am De Facut Problema 189 NumarMunte De Pe Pbinfo Dar Este O Problema Cu Algoritmul Meu Daca Imi Puteti Spune De Ce Ar Fii Super Multumesc class=

Răspuns :

#include <iostream>

using namespace std;

int m[12], cif[12];

int descreste(int a, int b)

{

   int ok=1;

   for (int i=a; i<b && ok; ++i)

       if (cif[i]<=cif[i+1]) ok=0;

   return ok;

}

int munte(int num)

{

      int nc=0;

      while (num)

      {

       ++nc; cif[nc]=num%10; num/=10;

      }

      int k=1;

      while (cif[k]<cif[k+1] && k<nc) ++k;

      if (k==1 || k==nc) return 0;

      else if (descreste(k, nc)) return 1;

      else return 0;

}

int main()

{

   int n, i, a;

   cin >> n;

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

   {

       cin >> a;

       if (munte(a)) m[i]=1;

   }

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

   {

       cout << m[i] << "\n";

   }

   return 0;

}


Bună! Ai corectarea în fișierul atașat. Erau greșeli de neatenție (de exemplu:lipsea d=d/10 în al doilea while) și de logică (de ex. programul nu ar fi considerat un șir constant - ex. n=22 - strict crescător/descrescator; prin lipsa egalului din comparația c>cf sau c<cf).

Vezi imaginea RAZZVY