Informatică, întrebare adresată de denisdumihist, 8 ani în urmă

Cerinţa
Să se scrie o funcție C++ care primește ca parametri două numere n și k și determină cel mai mare număr care poate fi scris cu k cifre ale lui n. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.

Restricţii şi precizări
numele funcției va fi numar
funcția va avea trei parametri: primul parametru reprezintă numărul n;al doilea parametru reprezintă numărul k; iar al treilea va reprezenta valoarea determinată de funcție
toți parametrii vor fi numere naturale nenule mai mici decât 2.000.000.000
n va avea cel puțin k cifre



Exemplu
După apelul

view sourceprint?
1.
numar(27594 , 3 , x);
x va avea valoarea 975.

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.

Răspunsuri la întrebare

Răspuns de alexandrumorus
1

void numar(int n , int k , int & x)

{

int v[20] , m = 0;

do{

 v[++ m] = n % 10;

 n /= 10;

}

while(n);

for(int i = 1 ; i < m ; i ++)

 for(int j = i + 1 ; j <= m ; j++)

  if(v[i] < v[j])

  {

   int aux = v[i];

   v[i] = v[j];

   v[j] = aux;

  }

x = 0;

for(int i = 1 ; i <= k ; i ++)

 x = 10 * x + v[i];

}


denisdumihist: ms
Alte întrebări interesante