Pentru a vă înregistra, vă rugăm să trimiteți un email către administratorul site-ului.
Pune o întrebare

3.6k intrebari

6.8k raspunsuri

15.5k comentarii

2.5k utilizatori

0 plusuri 0 minusuri
2.6k vizualizari
Care e conditia generala prin care putem verifica daca un numar are aspect de muntre indiferent de numarul de cifre ? Exeplu:1235420 are aspect de munte.
Novice (178 puncte) in categoria Matematica

1 Raspuns

1 plus 0 minusuri
Nu imi e clar daca ne intrebati asta ori doar ne testati ...

Inteleg ca e vorba despre numerele ale caror cifre sunt in ordine crescatoare pana la un punct, iar apoi descresc.

Daca ar fi sa punem asta sub forma matematica in cazul unui numar de m cifre de forma (a1a2...am), ar fi vorba de existenta unui n, astfel incat:

1< n < m,

pentru 1 <= i < n, oricare a(i) < a(i+1) si,

pentru n <= i < m, oricare a(i) > a(i+1)
Senior (8.1k puncte)
0 0
Nu va testez, ci doar vreau sa aflu raspunsul. Va rog, ati putea fi mai clar?
0 0
Nici eu nu sunt convins ca am dreptate, fiindca doar intuiesc despre ce este vorba. E prima data cand intalnesc conceptul de numar cu "aspect de munte".

In cazul de fata, luand cifrele numarului dat, 1235420, constatam ca:

1 < 2 < 3 < 5 > 4 > 2 > 0.

Deci undeva in interiorul numarului dat exista o cifra (5, cifra de pe pozitia a 4-a), fata de care cifrele descresc, atat in dreapta, cat si spre stanga, de unde si aspectul de care se vorbeste, unde 5 este varful muntelui, 1 este la poalele din stanga ale muntelui, iar 0 la poalele din dreapta ale muntelui.

Cam la asta m-a dus gandu cand am citit despre "aspectul de munte" al numarului dat...
0 0

Puteti explica ce inseamna m,n,a(i) si a(i+1), va rog?

Problema aceasta o am pentru informatica si am rezolvat-o dar vreau sa stiu si parerea unor oameni mai experimentati.

Sa va zic cum am  rezolvat

Am oglindit numarul de exemplu pentru 242721 am facut 127242 si am calculat cifra maxima pana cand cifra de pe pozitia din stanga cifrei se afla o cifra mai mica(y).(127242 in cazul acesta e 4).Si am "taiat" numarul pana la 1272, si am calculat cifra maxima(o), adica 7.

Si am zis ca daca o>y atunci numarul nu are aspect de munte.

Daca am gresit undeva, va rog corectati-ma.

0 0

m - numarul de cifre (in cazul dat, 1235420, sunt 7 cifre, numarul fiind de ordinul milioanelor)

n- pozitia "varfului muntelui" (in cazul dat este pozitia a 4-a, numarand de la stanga spre dreapta, deci pozitia de pe ordinul miilor. Ramane de stabilita daca pozitia varfului trebuie sa fie la mijlocul numarului ori poate fi oriunde).

 

In cazul de fata:

a(i) este cifra de pe pozitia i

a(1) e cifra milioanelor

a(6) e cifra zecilor

a(7) e cifra unitatilor

 

Rezolvarea dvs. nu imi e clara. Nu stiu daca intelegem in acelasi fel ideea de "aspect de munte" asociata unui numar...

0 0

#include <iostream>

 
using namespace std;
 
int main()
{int x,ok,n,c,y,z,o;
cin>>n;z=n;ok=1;x=n;n=0;y=0;o=0;
while(x!=0)
{c=x%10;n=n*10+c;x=x/10;}
 
   while(n!=0){c=n%10;if(c>y){y=c;}if(c<y){n=0;}
    n=n/10;}while(c!=y){z=z/10;c=z%10;}z=z/10; while(z!=0){c=z%10;if(c>o)o=c;z=z/10;}
   if(o>=y)ok=0;
   if(ok)cout<<"Numarul are aspect de munte";
   else cout<<"Numarul nu are aspect de munte";
return 0;}
 
0 0

Am incercat un altfel de program, dar va rog sa imi spuneti daca sunteti obisnuit cu C++

 
#include <iostream>
 
using namespace std;
 
int main()
{int x,ok,n,c,y,z,o,k;
cin>>n;ok=1;x=n;n=0;y=0;o=0;
while(x!=0)
{c=x%10;n=n*10+c;x=x/10;}z=n;
 
   while(n!=0){c=n%10;if(c>y){y=c;}if(c<y){n=0;}
    n=n/10;}while(k!=y){z=z/10;k=z%10;}z=z/10;while(z!=0){k=z%10;if(k>o)o=k;z=z/10;}
if(o<c)cout<<"Numarul are aspect de munte";
else if(o>c) cout<<"Numarul nu are aspect de munte";
 
return 0;}
Pentru acesta imi da bine cand verific, dar nu imi da pentru numere cum ar fi 6262. Pentru 2626 imi da bine.
1 0
Nu imi e clar algoritmul dvs. Va propun altul:

Parcurgeti numarul dat de la dreapta spre stanga si invers si retineti pozitia la care descresterea, respectiv cresterea cifrelor succesive inceteaza. Daca acest lucru se intampla la aceeasi pozitie din numar, atunci numarul are aspect de munte. In oricare alt caz, nu are.

Practic veti construi din numar un sir de cifre (a[1],a[2],...,a[max]) si veti parcurge acel sir de 2 ori, de la indicele 1 catre max, respectiv de la indicele max catre 1. a[max] e cifra unitatilor.

Parcurgerea se va opri, atunci cand o faceti de la stanga spre dreapta (de la 1 la max), la primul i pentru care a[i]>a[i+1], respectiv atunci cand o faceti de la dreapta spre stanga (de la max la 1), la primul j pentru care a[j]<a[j+1].

Daca va veti opri la acelasi indice din cadrul sirului (daca i=j+1) in cazul ambelor parcurgeri, veti avea numar cu aspect de munte, iar altfel nu.

Daca reusiti sa transpuneti intr-un limbaj de programare cele scrise de mine mai sus, v-as ruga sa imi spuneti daca algoritmul propus fct. corect si, eventual, sa postati si aici programelul.
...