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
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);
}
#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
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Fizică,
9 ani în urmă
Arte,
9 ani în urmă
Matematică,
9 ani în urmă