Предмет: Информатика,
автор: saines254
программисты-информатики, нужна помощь!
из некого числа вычли сумму его же цифр, после чего из результата снова вычли сумму его цифр и так далее. через сколько таких действий получится 0?
при написании программы нужно использовать процедуру.
saines254:
ну, допустим, три? не указано в задании, извиняюсь
Ответы
Автор ответа:
1
===== PascalABC.NET =====
function СуммаЦифр(Число: integer): integer;
begin
Result := 0;
while Число > 0 do
begin
Result += Число mod 10;
Число := Число div 10
end
end;
procedure ЧислоДействий(Число: integer; var Действий: integer);
begin
Число := Abs(Число); // вдруг кто-то задал отрицательное?
Действий := 0;
while Число > 0 do
begin
Число -= СуммаЦифр(Число);
Inc(Действий)
end;
if Число <> 0 then // невозможно получить 0
Действий := -1
end;
begin
var Число := ReadInteger('Введите число:');
var СделаноДействий := 0;
ЧислоДействий(Число, СделаноДействий);
if СделаноДействий >= 0 then
Print('Сделано действий:', СделаноДействий)
else
Print('Невозможно получить ноль')
end.
Приложения:

Похожие вопросы
Предмет: Математика,
автор: ПРИШИБЛИНАЯ
Предмет: Математика,
автор: STEEFO
Предмет: Химия,
автор: krossovka
Предмет: География,
автор: FunnySimplyGirl98
Предмет: Химия,
автор: kisumi