Замена цифры в числе - Pascal ABC

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

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

Дано целое число (5<число<2*109), его делят нацело на 2. Полученное частное опять нацело делят на 2, но если в записи частного попадается цифра 6 (одна или несколько), её заменяют цифрой 5. Частное продолжают делить нацело на 2 (при необходимости делая замены цифр) до тех пор, пока число не станет меньше 5. Найти количество замен цифр.

Решение задачи: «Замена цифры в числе»

textual
Листинг программы
var a:longint;k:integer;
function zam(x:longint;var kz:integer):longint;
begin
  if x>0 then
          if x mod 10 = 6 then begin inc(kz); zam:=10*zam(x div 10,kz)+5 end
                          else zam:=10*zam(x div 10,kz)+(x mod 10)
         else zam:=0                 
end;
begin
 write('a = ');readln(a);k:=0;
 while a>=5 do a:=zam(a div 2,k);
 writeln('количество замен: ',k)
end.

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

  1. Создаются две переменные типа longint: a и k.
  2. Создается функция zam, которая принимает в качестве аргументов x (тип longint) и kz (тип integer).
  3. Внутри функции проверяется, что x больше нуля.
  4. Если x больше нуля, то выполняется проверка, что x mod 10 равно 6. Если это условие выполняется, то значение kz увеличивается на единицу и функция вызывается рекурсивно с аргументами x div 10 и kz. В результате выполняется замена цифры в числе.
  5. Если условие из пункта 4 не выполняется, то значение kz остается неизменным, а результат функции zam присваивается переменной a.
  6. В основной части программы считывается значение переменной a и устанавливается начальное значение k равным 0.
  7. Запускается цикл while, который выполняется до тех пор, пока a больше или равно 5.
  8. Внутри цикла значение a присваивается результату вызова функции zam, деленному на 2, и значению k увеличивается на единицу.
  9. По завершении цикла выводится количество замен, которое равно значению k.

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


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

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

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