Найти число сочетаний из 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, используя формулу.
- В функции main() используется цикл while, который продолжается до тех пор, пока пользователь не введет 'y'.
- Внутри цикла пользователю предлагается ввести значения m и n.
- Если n меньше или равно нулю, или n меньше m, то цикл продолжается.
- В противном случае, вычисляется число сочетаний и выводится на экран.
- Затем пользователю предлагается ввести 'y' или 'n'.
- В функции C(m,n) используется рекурсивная формула для вычисления числа сочетаний.
- Если m равно 0 или m равно n, возвращается 1.
- В противном случае, возвращается 1 + C(m,n-1) + C(m-1,n-1).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д