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

Subprogram pentru a afla cel mai mare numar care se poate forma cu cifrele unui numar

Răspunsuri la întrebare

Răspuns de stassahul
16
int sub(int n)
{
    int a[100],nr=0,k=0;
    while(n!=0)
    {
        a[nr++]=n%10;
        n/=10;
    }
    for(int i=0;i<nr-1;i++)
        for(int j=i+1;j<nr;j++)
            if(a[i]<a[j])
                swap(a[i],a[j]);
    for(int i=0;i<nr;i++)
        k=10*k+a[i];
    return k;
}
Răspuns de ArMyFoRHeLL
13
Uite aici o metoda cu vector de frecventa :
#include <iostream>

using namespace std;

void sub(int n)
{
    int a[100]={0};
    while(n!=0)
    {
        a[n%10]++;
        n/=10;
    }
    for(int i=9;i>=0;i--)
          while(a[i]>0)
          {
            cout<<i;
            a[i]--;
          }
}
int main()
{
    int n;
    cin>>n;
    sub(n);
    return 0;
}


Alte întrebări interesante