Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 07.09.2019, 16:31   #1
X-Viktor
Новичок
Джуниор
 
Регистрация: 07.09.2019
Сообщений: 1
Вопрос Проблема с рекурсией. Необходимо посчитать кол-во найденных комбинаций.

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

Код:
program num_3;

var
  n: integer;
 
procedure rec(n, s, j: integer);
  
  var
    i, a: integer;
    
  begin
    
    for i := j to n // Перебор всех комбинаций
      do
        if s + i = n // Если найдена комбинация
          then
            begin
              // Вот тут счёт
            end
          else
            if s + i < n
              then
                rec(n, s+i, i);
  end;

begin
  write('Введите число: ');
  readln(n);
  
  rec(n, 0, 1);
end.
X-Viktor вне форума Ответить с цитированием
Старый 07.09.2019, 23:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

а что должен подсчитать данный код?

впрочем, неважно.

Если ваш код работает, то достаточно ввести ещё одну переменную:
Код:
program num_3;


procedure rec(n, s, j: integer; var count : integer);
  
  var
    i, a: integer;
    
  begin
    
    for i := j to n // Перебор всех комбинаций
      do
        if s + i = n // Если найдена комбинация
          then
            begin
              // Вот тут счёт
              count := count + 1
            end
          else
            if s + i < n then rec(n, s+i, i, count);
  end;

var
  n, c: integer;

begin
  write('Введите число: ');
  readln(n);
  c := 0;
  rec(n, 0, 1, c);
  WriteLn('Count = ',c);
end.

Последний раз редактировалось Serge_Bliznykov; 08.09.2019 в 13:45.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо посчитать количество отрицательных элементов в массиве,используя перегрузку функций. anasttb Общие вопросы C/C++ 0 01.06.2017 18:56
Необходимо посчитать средний балл.. Jameses Паскаль, Turbo Pascal, PascalABC.NET 1 18.12.2014 20:30
Игра Lines ( C++ ) Проблема с рекурсией tov-solntsev Помощь студентам 0 29.08.2010 14:32
Необходимо сравнить 2 колонки и посчитать количество, удовлетворяющих условию druzimm3 Microsoft Office Excel 4 03.05.2010 23:27
Необходимо посчитать сумму ряда в Delphi console QuadroX Помощь студентам 5 08.10.2009 17:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS