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