Informatică, întrebare adresată de Reme99, 9 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 razvan16
0
Ceva de genul:
#include<iostream>
using namespace std;
int numar(int n,int k)
{
    int x[50],j=0;

    while(n)
    {
        x[j]=n%10;
        j++;
        n=n/10;
    }

    bool ok=false;
    do
    {
        ok=false;
        for(int i=0;i<j-1;i++)
        {
            if(x[i]<x[i+1])
            {
                ok=true;
                int tmp=x[i];
                x[i]=x[i+1];
                x[i+1]=tmp;
            }
        }
    }while(ok);
    int rezultat=0;
for(int i=0;i<k;i++)
{
    rezultat=rezultat*10+x[i];

}
return rezultat;
}
int main()
{

cout<<numar(27594,3);
}
 


Alte întrebări interesante