Есть ответ 👍

На вход программе поступает натуральное число не превышающее 10^30 требуется написать программу, которая, используя все цифры этого числа, формирует новое натуральное число, причем самое маленькое из всех возможных той же разрядности. на любом языке (лучше конечно на c++ либо pascal abc)

156
422
Посмотреть ответы 2

Ответы на вопрос:

Dafran
4,5(35 оценок)

посчитаем количество раз, когда встречается каждая цифра в исходном числе. тогда ответ –  либо все цифры, расположенные в порядке возрастания (если в исходном числе не было нулей), либо сначала одна наименьшая цифра, потом все нули, потом все остальные цифры в порядке возрастания.

с++:

#include < iostream>

int main() {

    int count[10];

    char digit;

    for (digit = 0; digit < 10; digit++) {

        count[digit] = 0;

    }

    while (std: : cin.get(digit)) {

        digit -= '0';

        if ((digit < 0) || (digit > 9)) {

            break;

        }

        count[digit]++;

    }

    digit = 1;

    while (count[digit] == 0) {

        digit++;

    }

    std: : cout < < int(digit);

    count[digit]--;

    for (digit = 0; digit < 10; digit++) {

        for (int i = 0; i < count[digit]; i++) {

            std: : cout < < int(digit);

        }

    }

    return 0;

}

пример ввода: 11111111112345678098765422

пример вывода: 10111111111222344556677889

hussrav98
4,4(74 оценок)

Const n=40;   var a: array[1..n] of integer; i: integer;   begin randomize; writeln('массив a: '); for i: =1 to n do   begin   a[i]: =random(31);   write(a[i]: 4);   end; writeln; writeln('изменённый массив a: '); for i: =1 to n do   if a[i]< 10 then a[i]: =2; for i: =1 to n do write(a[i]: 4); writeln; end. пример (для n=10): массив a: 5 30 21 30 3 24 7 22 2 17изменённый массив a: 2 30 21 30 2 24 2 22 2 17

Популярно: Информатика