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

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

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

Задание такое. Убрать из интегер цифру под каким то номером. Без перевода в стринг, чар и др. Исключительно числовыми данными. Изначально написал такую программу. Но она не работают. Попробуйте запустить и увидите не проходимость компиляции. Какие еще есть варианты по убиранию нужной цифры из интегер?
Листинг программы
  1. var
  2. x, y, i : integer;
  3. begin
  4. writeln ('введите число');
  5. readln (x);
  6. writeln ('введите номер цифры');
  7. readln (i);
  8. y := x - x[i];
  9. writeln ('ответ', y);
  10. end.

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

textual
Листинг программы
  1. Function Rev(n: Int64): Int64;
  2. Begin
  3.   While n > 0 do
  4.     Begin
  5.       Result := Result * 10 + n mod 10;
  6.       n := n div 10;
  7.     End;
  8. End;
  9.  
  10. Function Del(n, index: Int64): Int64;
  11. Begin
  12.   n := Rev(n);
  13.   Result := Rev(n div Round(Power(10, index)) * Round(Power(10, index - 1)) + (n mod Round(Power(10, index - 1))));
  14. End;
  15.  
  16. Var
  17.   n, i: Int64;
  18.  
  19. Begin
  20.   Readln(n);
  21.   Readln(i);
  22.   Writeln(Del(n , i));
  23. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы