408
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ărulk, 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 nva avea cel puținkcifre
Exemplu
După apelul
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.
void numar(int n , int k , int &nr)
{
int f[11]={0};
int cn = n;
nr=0;
while(cn)
{
f[cn%10]++;
cn/=10;
}
for(int i = 9 ; i >= 0 ; --i)
{
for(int j = 1 ; j <= f[i] && k ; ++j , k--)
nr = nr * 10 + i;
}
}
Comentarii