Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ признак делимости на 9

Автор: LP.by 9.01.2007 1:08

помогите решить задачу.
Задачка :
С помощью признака делимости на 9, проверьте кратно ли данное натуральное число 9.
Напишите рекурсивную процедуру.

Автор: volvo 9.01.2007 1:13

Сам признак делимости на 9 знаешь?

Тогда в чем проблема? Напиши сам или найди на форуме рекурсивную функцию, суммирующую все цифры числа...

Автор: LP.by 9.01.2007 1:16

поправочка, текст я нашёл, а вот с рекурсивной процедурой проблема, (не знаю что это такое 10.gif )

var
b,a,sum:integer;
begin
read(a);
sum:=0;
while a >0 do
begin
b:= a mod 10;

sum:=sum+b;
a:= a div 10;
end;
if sum mod 9=0 then
write( sum,'Delitsya')
else
write( sum,'Ne Delitsya');
end.


Автор: volvo 9.01.2007 1:38

Очередное извращение - использовать здесь процедуру... Функция была бы удобнее...

procedure get_s(var s: integer; n: integer);
begin
if n = 0 then s := 0
else begin
get_s(s, n div 10);
s := s + (n mod 10);
end;
end;

var
a, sum: integer;
begin
readln(a);
get_s(sum, a);

if sum mod 9=0 then
write(sum,' Delitsya')
else
write(sum,' Ne Delitsya');
end.

Автор: LP.by 9.01.2007 1:54

огромное спс
good.gif