• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Рекурсия, Delphi

NataliK1991

Ученик
Регистрация
28 Сен 2012
Сообщения
2
Реакции
0
Баллы
0
Рекурсия, Delphi

Натуральное число М называется совершенным, если оно равно сумме всех своих делителей, включая 1, но исключая себя. Напечатать все совершенные числа, меньшие заданного числа N. Код с применением циклов переделать на рекурсию..
У меня чет не выходит.
Код:
program Sovershennye_chisla; 
{$APPTYPE CONSOLE}
uses   SysUtils;
var N: word;
      i, j, k, s: integer;  
begin  
write (‘Vvedite cheloe pologitelnoe chislo N=’);
readln (N);
k:=0;
i:=1;
while i<N do 
	begin
  	s:=0;
 	for j:=1 to i div 2 do
  		if i mod j=0 then s:=s+j;
   			begin
   		       write(i,' ');
  	 	       k:=1;
  	 	end;
i:=i+1;
 	end;
if  k=0 then write ('Sovershennyh chisel net');
end.
 
почему ты использовал while для рекурсии???
вот допустим программа для нахождения факториала
procedure TfmExample.bbRunClick(Sender: TObject);
function Factorial(N: Word): Extended;
begin
if N = 0 then
Result: = 1 else
Result := N * Factorial(N - 1)
end;
var
N: Integer;
begin
try
N := StrToInt(Trim(edinput.Text));
except
Exit; end;
IbOutput.Caption := FloatToStr(Factorial(N))
end;

а вообще советую посмотреть вот это сайт , сам им пользуюсь не первый год уже.
 
Назад
Сверху