Напишите код ** c++ B. Чубакка и число Люк Скайуокер дал Чубакке целое число x. Чубакка...

0 голосов
74 просмотров

Напишите код на c++



B. Чубакка и число


Люк Скайуокер дал Чубакке целое число x. Чубакка не особо разбирается в числах, но обожает инвертировать в них цифры. Инвертировать цифру t — значит заменить её на цифру 9 - t.

Помогите Чубакке из исходного положительного числа x получить минимальное положительное число, инвертировав некоторое (возможно, нулевое) количество цифр. Запись итогового числа не должна начинаться с нуля.

Входные данные
В первой строке содержится единственное целое число x (1 ≤ x ≤ 1018) — число, которое Люк Скайуокер дал Чубакке.

Выходные данные
Выведите ответ на задачу — минимально возможное положительное число, которое может получить Чубакка после инвертирования некоторых цифр. Число не должно содержать ведущих нулей.

Примеры
входные данныеСкопировать
27
выходные данные
22
входные данныеСкопировать
4545
выходные данные
4444


Информатика (12 баллов) | 74 просмотров
Дан 1 ответ
0 голосов

#include
#include
using namespace std;

int main()
{
    long long int n{ 0 }, z{ 0 };
    while (cin >> n) {
        size_t ans[120];
        for (; n != 0; n = n / 10) {
            int tmp = n % 10;
            if (n / 10 != 0 || (n / 10 == 0 && n != 9)) { 
                tmp = min(tmp, 9 - tmp); 
            }
            ans[z++] = tmp;
        }
        for (int i = z - 1; i >= 0; i--) {
            cout << ans[i];<br>        }
        cout << endl;<br>    }
    return 0;
}

(4.2k баллов)