👤

Se citeşte de la tastaturǎ un numǎr natural. Sǎ se afişeze cel mai mare numǎr care se poate forma cu cifrele distincte ale numǎrului dat.
Exemplu Pentru numǎrul 29363, mulţimea cifrelor distincte este {2, 3, 6, 9}, iar numǎrul cerut este 9632.
C++...cat mai simplu, daca se poate :)


Răspuns :

Imdd in 6 m rezolv sper ca team ajutat
#include <iostream>
using namespace std;
int main(){
    int n, v[20], i, k=1, con, cif, c=0, aux, final=0;
    cout<<"n=";
    cin>>n;
    while(n>0){
        cif=n%10;//Luam fiecare cifra a numarului n, si o introducem in vector
        con=0;//Prima data verificam daca nu exista deja cifra in vector
        for(i=1;i<=k;i++){
            if(v[i]==cif)
                con=1;
        }
        if(con==0){
            v[k]=cif;//Introducem in vector
            k++;//Incrementam k, ca sa scriem pe urmatoarea pozitie
        }
        n=n/10;//Scoatem ultima cifra
    }
    //Ordonam vectorul descrescator, prin metoda bulelor/bubles/interschimbare
    //Asta ar trebui sa o ai in caiet :P
    do{
        c=0;
        for(i=2;i<k;i++){
            if(v[i]>v[i-1]){
                aux=v[i];
                v[i]=v[i-1];
                v[i-1]=aux;
                c=1;
            }
        }
    }while(c>0);
    //Transformam vectorul intr-un numar
    for(i=1;i<k;i++){
        final = final*10+v[i];
    }
    cout<<final;
    return 0;
}


Vezi imaginea ARTUR99
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și vă încurajăm să ne salvați în lista de favorite!


Ze Questions: Alte intrebari