Номер §4.5 ПМ 6

ГДЗ по информатике 8 класс, Босова 2023, страница 186

§. ПМ Количество и сумма цифр

Пример 6. Для произвольного натурального числа n, не превосходящего 10910^9, дана программа, вычисляющая количество его цифр:

var n, k: integer;
begin
  write('Введите число n>>');
  read(n);
  k := 0;
  repeat
    n := n div 10;
    k := k + 1
  until n = 0;
  write('k = ', k)
end.

Предложите решение этой задачи с использованием оператора while. Попытайтесь доработать исходную программу так, чтобы в ней подсчитывалась ещё и сумма цифр исходного числа.

Решение

При делении на нацело последняя цифра отбрасывается. Поэтому число выполненных делений до получения нуля равно количеству цифр. Для натурального n исходное значение положительно, и условие n > позволяет выполнить те же действия в цикле while:

var n, k: integer;
begin
  write('Введите число n>>');
  readln(n);
  k := ;
  while n >  do
  begin
    n := n div ;
    k := k + 
  end;
  writeln('k = ', k)
end.

Для суммы цифр перед отбрасыванием последней цифры нужно найти её как и прибавить к накопленной сумме s. Начальное значение суммы равно нулю. В доработанной исходной программе порядок двух действий внутри repeat существенен: сначала s := s + n mod , затем n := n div .

var n, k, s: integer;
begin
  write('Введите число n>>');
  readln(n);
  k := ;
  s := ;
  repeat
    s := s + n mod ;
    n := n div ;
    k := k + 
  until n = ;
  writeln('Количество цифр: ', k);
  writeln('Сумма цифр: ', s)
end.

Проследим число . Сначала , поэтому и , . Затем , поэтому , , . Наконец, , значит, , , . Условие окончания теперь истинно: в числе три цифры, их сумма равна .

Ответ

Цикл while n > подсчитывает цифры; дополнение s := s + n mod перед n := n div подсчитывает их сумму. Для : цифры, сумма .

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото