Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т. д. Через сколько таких действий получится нуль?

Вопрос посетителя

Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т. д. Через сколько таких действий получится нуль?

Ответ эксперта

var n,x,k: integer;
 
//Функция нахождения суммы цифр числа n
function sum(n: integer): integer;
var s: integer;
begin
  s:= 0; //в начале сумма равна 0
  while (n>0) do //Пока число положительное выполняем цикл
    begin
      s:= s+n mod 10; //Находим остаток от деления числа n на 10, суммируем  
      n:= n div 10;  //Находим целую часть от деления числа n  на 10
    end;
  sum := s;
end;
 
begin
  readln(n);
  x:= n;   
  k:= 0;   
  while (x>0) do //пока число положительное продолжаем выполнять цикл
    begin
      x:=x-sum(x); //от числа отнимаем сумму его цифр
      inc(k); //увеличиваем счетчик
    end;
  writeln(‘k=’, k);
end.

image_pdfСкачать ответimage_printРаспечатать решение

Добавить комментарий

Похожие вопросы от пользователей