singlepost

Рекурсивный перевод из 10чной с-мы в 3чную (Pascal) << На главную или назад  

Перевести число из десятичной в троичнуюсистему счисления. для решения использовать рекурсию.
Вот код проги, который работает, правильно.

Program vubor_slov;
uses crt;
Var a,n:integer;
procedure perevod(n:integer);
begin
if n<3 then write(n)
else begin perevod(n div 3);
a:=n mod 3;
write(a);
end;
end;
Begin clrscr;textcolor(11);
writeln('vvedite n');
readln(n);
perevod(n);
readln
End.

суть в том что я не понимаю
как поэтапно работает прога(
помогите плиз

3 ответов в теме “Рекурсивный перевод из 10чной с-мы в 3чную (Pascal)”

  1. 3
    Алексей Гридин ответил:

    И так, структура такова: 1) если у нас число меньше трёх, то мы его выводим и завершаем процесс. Тут думаю всё понятно.
    2) Иначе, мы должны получить младший разряд результата, извлекаем его модом.
    3) перед этим мы длжны получить старшие разряды, для этого и вызывается рекурсивно функция, но с уменьшенным в три раза n.

  2. 2
    Илья Витальевич ответил:

    А ты знаешь, что такое рекурсия?

  3. 1
    Сергей Владимирович ответил:

    суть рекурсии в том чтоб в процедуре или фугкции обратится к ней же(внутри неё)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.