программисты-информатики, нужна помощь! из некого числа вычли сумму его же цифр, после чего из результата снова вычли сумму его цифр и так далее. через сколько таких действий получится 0? при написании программы нужно использовать процедуру.
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.
0 votes Thanks 1
KennyLans
Я просто не имею понятий, что будет в колонне Информатика + Количество часов, на примере там пишется NULL, у меня там вообще ничего нет, и вот какой на это вывод :/
KennyLans
Всё, до меня дошло, спасибо за консультацию
Answers & Comments
===== 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.