Необходимо поставить условие выполнения, иначе рекурсия будет вечной. Вот один из вариантов (что первое в голову взбрело), что можно сделать с вашим кодом:
procedure F(n: longint); begin if n mod 2 = 0 then begin write(n, ' '); F(n - 1); F(n div 2); end; end; begin F(1024); end.
Да, "F(n - 1)" в моём примере лишняя, но главное - ответ на ваш вопрос: ставьте условие, при котором всё это должно выполнятся.
Необходимо поставить условие выполнения, иначе рекурсия будет вечной. Вот один из вариантов (что первое в голову взбрело), что можно сделать с вашим кодом:
procedure F(n: longint); begin if n mod 2 = 0 then begin write(n, ' '); F(n - 1); F(n div 2); end; end; begin F(1024); end.Да, "F(n - 1)" в моём примере лишняя, но главное - ответ на ваш вопрос: ставьте условие, при котором всё это должно выполнятся.
Пример работы: