Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 02:50   #1
JellyFilled
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию Написать рекурсивную реализацию функции.

Как написать рекурсивный вариант этой функции?
Код:
var n:longint;
function func(n:longint):longint;
var i:integer;
    s:longint;
    m:longint;
begin
    s:=0;m:=1;
    while n>0 do
     begin
      if n mod 2<>0
       then
        begin
         s:=s+(n mod 10)*m;
         m:=m*10
        end;
      n:=n div 10;
     end;
    func:=s
end;
begin
 writeln('n=');
 readln(n);
 writeln(func(n));
end.
JellyFilled вне форума Ответить с цитированием
Старый 31.10.2014, 08:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

JellyFilled, а задание приводить не нужно?! Думаете, по коду легче догадаться, чем прочитать текст задачи?

вот с рекурсией
Код:
function OnlyOddDigits(n:longint):longint;
begin
  if n=0 then OnlyOddDigits := 0
  else
     if Odd(n mod 10) then
           OnlyOddDigits := OnlyOddDigits(n div 10)*10 +  n mod 10
       else
           OnlyOddDigits := OnlyOddDigits(n div 10);
end;

Последний раз редактировалось Serge_Bliznykov; 31.10.2014 в 08:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2014, 11:01   #3
JellyFilled
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
JellyFilled, а задание приводить не нужно?! Думаете, по коду легче догадаться, чем прочитать текст задачи?

вот с рекурсией
Код:
function OnlyOddDigits(n:longint):longint;
begin
  if n=0 then OnlyOddDigits := 0
  else
     if Odd(n mod 10) then
           OnlyOddDigits := OnlyOddDigits(n div 10)*10 +  n mod 10
       else
           OnlyOddDigits := OnlyOddDigits(n div 10);
end;
Извинмте, спасибо большое.
JellyFilled вне форума Ответить с цитированием
Старый 31.10.2014, 11:43   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Извинмте, спасибо большое.
Ничего страшного. В следующий раз просто не играйте в партизана...

Большое пожалуйста!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать рекурсивную функцию возведение вещественного числа в целую степень nobo Общие вопросы C/C++ 5 11.05.2014 17:12
написать рекурсивную функцию Vitalov1 Помощь студентам 1 23.03.2013 16:35
Написать рекурсивную процедуру генерации всех перестановок чисел от 1 до n Proskurina Паскаль, Turbo Pascal, PascalABC.NET 5 04.06.2012 10:34
Написать рекурсивную функцию. Solnze2 Помощь студентам 0 20.05.2011 15:14
Написать рекурсивную функцию вычисления определителя квадратной матрицы Лёха Паскаль, Turbo Pascal, PascalABC.NET 1 23.03.2008 08:43