• C. Инверсия
    0
    Имя входного файла
    стандартный ввод
    Имя выходного файла
    стандартный вывод
    Ограничение по времени
    2 секунды
    Ограничение по памяти
    64 мегабайта
    Необходимо реализовать функцию, которая для заданного целого числа меняет порядок цифр в нем на обратный. Продемонстрировать работу процедуры на 5 целых числах.

    Формат входных данных
    С клавиатуры вводятся через пробел 5 целых положительных чисел, не превосходящих 109.
    Формат выходных данных
    Необходимо вывести через пробел 5 чисел — измененные исходные числа.
    Примечания
    Если у нового числа есть ведущие нули — выводить их не нужно.

    Примеры
    входные данные выходные данные
    31 1 294 421 1122
    13 1 492 124 2211

Ответы 1

  • Алгоритм решения

    Для каждого числа будем убирать последнюю цифру, пока число не станет нулём. При этом для очередной последней цифры ответ умножаем на 10 и прибавляем к нему эту цифру.

    Для одного числа алгоритм будет выглядеть так:

    while x > 0:

       ans = ans * 10 + (x mod 10)

       x = x // 10

    Где x - заданное число, ans - ответ на задачу (перевёрнутое число), mod - операция получения остатка, // - операция целочисленного деления.

    Формально, x mod 10 возвращает последнюю цифру числа x ("остаток от деления x на 10"), а x // 10 возвращает число x без последней цифры ("разделить x на 10 и отбросить остаток").

    Решение (Pascal)

    var

     x, i, ans: integer;

    begin

     for i := 1 to 5 do

     begin

       read(x);

       ans := 0;

       while (x > 0) do

       begin

         ans := ans * 10 + (x mod 10);

         x := x div 10;

       end;

       write(ans, ' ');

     end;

     writeln;

    end.

    ----------------------------

    Файл решения прикреплён.

    answer img
    • Автор:

      mia71
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years