Удалить из числа цифру с заданным номером - 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.
Объяснение кода листинга программы
- Первый шаг — ввод исходного числа и индекса цифры, которую необходимо удалить.
- Функция
Rev(n: Int64): Int64
используется для получения числа в обратном порядке. Начинает с обработки последней цифры введенного числа. - Результат умножается на 10 и к нему добавляется последняя цифра числа.
- Затем число делится на 10 и процесс повторяется до тех пор, пока число не станет равным 0.
- Результат функции
Rev(n: Int64): Int64
используется в функцииDel(n, index: Int64): Int64
. - Число делится на округленную в большую сторону мощность 10 в степени индекса.
- Результат делится на 10 в степени индекса — 1 и к нему добавляется остаток от деления исходного числа на 10 в степени индекса — 1.
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д