Найти число сочетаний из n элементов по m, используя формулу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ребята помогите пожалуйста Необходимо разработать программу согласно варианту задания. При написании программы реализовать рекурсивную функцию. Программу реализовать в диалоговом режиме: запрос данных - вывод ответа. После каждого вывода ответа запрашивать у пользователя выход и, в случае положительного ответа, осуществлять завершение программы. Варианты заданий 8) Реализовать рекурсивную функцию C(m,n) целого типа, находящую число сочетаний из n элементов по m, используя формулу: C(0,n) = C(n,n) = 1, C(m,n) = C(m,n-1) + C(m-1,n-1) при 0<m<n (m и n - целые параметры; n>0, 0<=m<=n).

Решение задачи: «Найти число сочетаний из n элементов по m, используя формулу»

textual
Листинг программы
int main(void) {
   char answer = 'n';
 
   while (tolower(answer) != 'y') {
      int m, n;
      puts ("\nn>0 and n>=m>=0");
      printf("enter (m, n): ");
      scanf("%i%*c%i%*c", &m, &n);
      if (n<=0 || n<m)
         continue;
      printf ("number = %i\n", C(m,n));
      printf ("Exit? (y,n): ");
      scanf ("%c%*c", &answer);
   }
      
   return 0;
}
 
int C (int m, int n) {
   return (m==0 || m==n )? 1: 1 + C(m,n-1) + C(m-1,n-1);
}

Объяснение кода листинга программы

В этом коде реализована функция для вычисления числа сочетаний из n элементов по m, используя формулу.

  1. В функции main() используется цикл while, который продолжается до тех пор, пока пользователь не введет 'y'.
  2. Внутри цикла пользователю предлагается ввести значения m и n.
  3. Если n меньше или равно нулю, или n меньше m, то цикл продолжается.
  4. В противном случае, вычисляется число сочетаний и выводится на экран.
  5. Затем пользователю предлагается ввести 'y' или 'n'.
  6. В функции C(m,n) используется рекурсивная формула для вычисления числа сочетаний.
  7. Если m равно 0 или m равно n, возвращается 1.
  8. В противном случае, возвращается 1 + C(m,n-1) + C(m-1,n-1).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы