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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

Код:
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 вне форума   Ответить с цитированием
Старый 08.09.2019, 00:35   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,126
Репутация: 5675
По умолчанию

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

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

Если ваш код работает, то достаточно ввести ещё одну переменную:
Код:
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 в 14:45.
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


01:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.