Buna!
Imi poate explica cineva cum se reconstruieste numarul n, in aceasta functie?
Nu inteleg de ce impart p cu 10, mai apoi il inmultesc la loc???
int nrmaxim(int n)
{
int nrc = 0, p = 1, k = n, maxx = n;
while(k)
{
nrc ++;
p = p * 10;
k = k / 10;
}
p = p / 10;
while(nrc)
{
if(n > maxx) maxx = n;
n = n % p * 10 + n / p;
nrc --;
}
return maxx;
}
Multumesc!
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
Pentru ca p trebuie sa fie cea mai mare putere a lui 10 mai mica sau egala cu n.
Explicație:
Pentru partea asta:
while(k)
{
nrc ++;
p = p * 10;
k = k / 10;
}
La sfarsitul executiei acestui while, p va avea valoarea:
(prima putere a lui 10 mai mare decat numarul k)
Daca vrei sa il folosesti pentru a permuta circular cifrele lui n spre stanga, p trebuie sa aiba cea mai mare putere a lui 10 mai mica sau egala cu n()
Ca sa ajungi de la la , trebuie sa imparti la 10
Alte întrebări interesante
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
9 ani în urmă
Fizică,
9 ani în urmă