fbpx

Problema #1509 – NrMaxim – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie o funcție care are ca parametru un număr natural n și returnează cel mai mare număr care poate fi obținut mutând, pe rând, prima cifră a numărului n și a celor obținute pe parcurs, pe ultima poziție. Nu se vor folosi șiruri de caractere și tablouri auxiliare.

Restricţii şi precizări

  • numele funcției va fi nrmaxim
  • funcția va avea un parametru reprezentând numărul dat, care va fi mai mic decât 1.000.000.000

Exemplu

nrmaxim(n=4273) = 7342 – este cel mai mare număr dintre 2734, 7342, 3427, 4273.

Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

long long  nrmaxim(long long n)
{
    long long put=1,p=0,maxi=-1;
    long long aux=n;
    while(aux!=0)
    {
        put=put*10;
        p++;
        aux /= 10;
    }
    while(p!=0)
    {
        n=n%(put/10)*10+n/(put/10);
        if(n>maxi) maxi=n;
        p--;
    }
    return maxi;
}
Comentarii

S-ar putea sa iti placa