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

Se citeşte un număr natural cu cifre nenule. Să se determine cel mai mic şi cel mai mare număr format din cifrele acestui număr.
Exemplu:
Date de intrare:
n=26341
Date de ieşire:
min=12346 max=64321.
Rezolvati in C++, am nevoie de ajutor urgent!!

Răspunsuri la întrebare

Răspuns de Petruccinator
0

#include <iostream>

void algo(const std::string& n) {

size_t i, c[10] = {};

for (i = 0; i < n.size(); ++i)

 ++c[n[i] - '0'];

 

size_t j, mx = 0, mn = 0;

for (i = 0; i < 10; ++i)

 for (j = 0; j < c[i]; ++j) {

     mn *= 10;

     mn += i;

 }

for (i = 9; i != SIZE_MAX; --i)

 for (j = 0; j < c[i]; ++j) {

     mx *= 10;

     mx += i;

 }

 

std::cout << mn << ' ' << mx;

}

int main() {

std::string n;

std::cin >> n;

algo(n);

}

Alte întrebări interesante