👤
Mararogoz19
a fost răspuns

Un număr este de tip “munte” dacă cifrele sale formează inițial un șir strict crescător, apoi un șir strict descrescător.
Se dau n numere naturale. Determinați, pentru fiecare dintre ele, dacă este de tip “munte”.Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.Programul afișează pentru fiecare dintre cele n numere citite, pe câte o linie a ecranului valoarea 1, dacă numărul corespunzător este de tip “munte”, respectiv valoarea 0 în caz contrar.


Răspuns :

//Problema "NumarMunte" #189, rezolvare 100p de Ouroboros

#include <iostream>

using namespace std;

int n,maxi,nr,i,x,y,j,m,ok,imax;
short a[15];
int main()
{
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>x;
        j=0;
        maxi=0;
        while(x>0)
        {
         ++j;
         a[j]=x%10;
         if(a[j]>maxi)
            maxi=a[j],imax=j;
         x=x/10;
        }
        m=1;
        if(imax==1 or imax==j)
            cout<<"0"<<'\n';
        else
        {
                while(m<imax)
            {
                if(a[m]<a[m+1])
                    ok=1;
                else
                {
                    ok=0;
                    break;
                }
                ++m;
            }
            if(ok==0)
                cout<<"0"<<'\n';
            else
            {
                m=imax;
                while(m>=imax && m<j)
                {
                    if(a[m]>a[m+1])
                    ok=1;
                else
                {
                    ok=0;
                    break;
                }
                ++m;
                }
            if(ok==0)
                cout<<"0"<<'\n';
            else
                cout<<"1"<<'\n';
            }
        for(x=1;x<=15;++x)
            a[x]=0;

        }
    }

    return 0;
}