Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
m9co038
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 34
#1

Рекурсивная функция - C++

15.05.2011, 17:40. Просмотров 562. Ответов 1
Метки нет (Все метки)

Выручайте! Очень нада сдать, сам не знаю как сделать.
Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного соотношения:
C(N, 0) = C(N, N) = 1,
C(N, K) = C(N – 1, K) + C(N – 1, K – 1) при 0 < K < N.
Параметры функции — целые числа; N > 0, 0 ≤ K ≤ N. Считать, что параметр N не превосходит 20. Для уменьшения количества рекурсивных вызовов описать вспомогательный двумерный массив для хранения уже вычисленных чисел C(N, K) и обращаться к нему при выполнении функции Combin2.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2011, 17:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивная функция (C++):

Рекурсивная функция - C++
Нужна программа,которая рекурсивно переводит числа из десятичной системы в двоичную.

Рекурсивная функция - C++
Составить прогруамму для вычисления , где , для вычисления n!!, использовать рекурсивную типизированную функцию.

Рекурсивная функция - C++
#include &lt;iostream&gt; void countdown(int n); void main() { countdown(4); // вызов рекурсивной функции system(&quot;PAUSE&quot;); } ...

Рекурсивная функция[] - C++
Доброго времени суток. Мне необходимо написать рекурсивную функцию для решения задачи: Помогите пожалуйста в решении данной...

Рекурсивная функция! - C++
Разработать рекурсивную функцию, возвращающую значение , для вычисления n-го члена последовательности b1 =5, bn+1=bn/(n2+n+1). Не знаю...

Рекурсивная функция. - C++
Доброго времени суток. Мне необходимо написать рекурсивную функцию для решения задачи: Помогите пожалуйста придумать алгоритм, никак...

1
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
15.05.2011, 21:09 #2
Что если при вызове функции K > N?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <math.h>
 
// this matrix might be hidden in function
// but it would look ugly
// also, this matrix might be optimized,
// but I don't give a damn
static int cache[20][20] = {
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
  };
 
size_t Combine(size_t N, size_t K) {
  if ((K == 0) || (N == K)) return 1;
  if (cache[N][K] != 0) return cache[N][K];
  return cache[N][K] = Combine(N - 1, K) + Combine(N - 1, K - 1);
  return 0;
}
 
int main(int argc, char **argv) {
  int i, j;
  for (i = 0; i < 20; ++i)
    for (j = 0; j <= i; ++j)
      printf("%d for %d = %d\n", i, j, Combine(i, j));
 
  return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2011, 21:09
Привет! Вот еще темы с ответами:

рекурсивная функция - C++
Описать рекурсивную функцию Digits(S) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой...

Рекурсивная функция! - C++
нужна помощь, как вычислить а в степени n, т.е написать программу использую две функции рекурсивную и нерекурсивный аналог. Очень нужно,...

Рекурсивная функция - C++
Как мне оформить в рекурсивную функцию? Напишите код пожалуйста, буду благодарен)) #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Рекурсивная функция - C++
Нужно написать рекурсивнюю функцию сложения двух чисел, используя только прибавление единицы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.