👤
HermioneJG
a fost răspuns

Scrieți un program care citește două numere naturale n și m și care afișează cel mai mare număr care se poate obține eliminând din n exact m cifre. m este mai mic decât numărul de cifre ale lui n.

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,m,k1=0,k2=0,i,v[51],a,c;

   cout<<"n: ";

   cin>>n;

   cout<<"m: ";

   cin>>m;

   int n2=n;

   while(n>0){

       n=n/10;

       k2++;

   }

   for(i=1;i<=k2;i++){

       int c=n2%10;

       n2=n2/10;

       v[i]=c;

   }

   cout<<endl;

   for(i=1;i<k2;i++){

       for(int j=i+1;j<=k2;j++){

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

               a=v[i];

               v[i]=v[j];

               v[j]=a;

           }

       }

   }

   int nr=0;

   for(i=1;i<=k2-m;i++){

       nr=nr*10+v[i];

   }

   cout<<nr;

   return 0;

}

Explicație:

1.am aflat cate cifre are n;

2.am pus fiecare cifra a lui n intr-un vector;

3.am ordonat crescator vectorul;

4.am format un numar nou eliminând din n exact m cifre