Удалить из числа цифру с заданным номером - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Задание такое. Убрать из интегер цифру под каким то номером. Без перевода в стринг, чар и др. Исключительно числовыми данными. Изначально написал такую программу. Но она не работают. Попробуйте запустить и увидите не проходимость компиляции. Какие еще есть варианты по убиранию нужной цифры из интегер?

Решение задачи: «Удалить из числа цифру с заданным номером»

textual
Листинг программы
Function Rev(n: Int64): Int64;
Begin
  While n > 0 do
    Begin
      Result := Result * 10 + n mod 10;
      n := n div 10;
    End;
End;
 
Function Del(n, index: Int64): Int64;
Begin
  n := Rev(n);
  Result := Rev(n div Round(Power(10, index)) * Round(Power(10, index - 1)) + (n mod Round(Power(10, index - 1))));
End;
 
Var
  n, i: Int64;
 
Begin
  Readln(n);
  Readln(i);
  Writeln(Del(n , i));
End.

Объяснение кода листинга программы

  1. Первый шаг — ввод исходного числа и индекса цифры, которую необходимо удалить.
  2. Функция Rev(n: Int64): Int64 используется для получения числа в обратном порядке. Начинает с обработки последней цифры введенного числа.
  3. Результат умножается на 10 и к нему добавляется последняя цифра числа.
  4. Затем число делится на 10 и процесс повторяется до тех пор, пока число не станет равным 0.
  5. Результат функции Rev(n: Int64): Int64 используется в функции Del(n, index: Int64): Int64.
  6. Число делится на округленную в большую сторону мощность 10 в степени индекса.
  7. Результат делится на 10 в степени индекса — 1 и к нему добавляется остаток от деления исходного числа на 10 в степени индекса — 1.
  8. Результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.8 из 5
Похожие ответы