Пример 6. Для произвольного натурального числа n, не превосходящего , дана программа, вычисляющая количество его цифр:
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 > позволяет выполнить те же действия в цикле 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 := 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 подсчитывает их сумму. Для
