Se citeşte de la tastatură un număr natural n (n>=100). Să se determine dacă numărul dat este număr „munte-vale”. Un număr natural este „munte-vale” dacă cifrele din număr sunt în ordine crescătoare până la o anumită poziţie, iar cifrele care urmează sunt în ordine descrescătoare până la sfârşit. Exemple pentru numere „munte-vale”: 24521, 18942, 16432
Răspunsuri la întrebare
conform enuntului sunt munte vale si numerele de forma 233566311, deoarece s-a pus cerinţa ca cifrele din număr sânt crescătoare până la o anumită poziţie, iar cifrele care urmează sunt în ordine descrescătoare până la sfârşit. Dacă era să fie pusă condiţie de strict crescătoare şi strict descrescătoare, atunci numărul menţionat mai sus nu este munte.
Dacă doreşti să fie respectată anume relaţiile strict crescătoare şi strict descrescătoare, cred te isprăveşti să redactezi puţin codul...
#include <iostream>
using namespace std;
int num, nc, cif[15], k, munte=1;
int main()
{
cin >> num;
while (num)
{
++nc; cif[nc]=num%10; num/=10;
}
k=1;
while (cif[k]<=cif[k+1] && k<nc) ++k;
if (k==1 || k==nc) munte=0;
else
{
for (int i=k; i<nc && munte; ++i)
if (cif[i]<cif[i+1]) munte=0;
}
if (munte) cout << "este numar munte_vale";
else cout << "nu este numar munte_vale";
}