There is a task "To write a program for calculating the number of combinations of m elements by
n (n<=m) Cnm=m!/n!(mn)! ,
Where m and n are entered from the keyboard using the recurrent formula
Cm0=1, Cnm=m-n+1/n * Cmn-1 "
What happened:
#include <iostream> // Добавление библиотеки ввода-вывода #include <math.h> // Добавление библиотеки математических функций #include <stdio.h> // Добавление библиотеки стандартного ввода-вывода #include <conio.h> // Добавление библиотеки для создания текстового интерфейса пользователя #include <windows.h> // Добавление библиотеки стандартных функци #include <string> // Добавление библиотеки для работы со строками using namespace std; // Использование пространства имен std double soch(int n, int m) { // Рекурсивная функция для рассчета числа сочетаний if (n==0 || m==n) { // Если n = 0 или т == n return 1; // Возвращяем единицу } else { // В остальных случаях рачитываем по формуле return soch(n-1,m-1)+soch(n,m-1); // Рекуррентная формула для числа сочетаний возращает полученое значение после рекурсии } } int main() // Главная функция { SetConsoleCP(1251); // Установка кодировки консоли на ввод SetConsoleOutputCP(1251); // Установка кодировки консоли на вывод int m; // Объявление переменной для хранения количества числа m int n; // Объявление переменной для хранения количества числа n do { // Цикл проверки правильности ввода чисел m и n cout << "Введите число m которое =>n" << endl; // Вывод уведомления о вводе числа m cin >> m; // Ввод числа m cout << "Введите число n которое <=m" << endl; // Вывод уведомления о вводе числа n cin >> n; // Ввод числа if (m<n){ // Проверка правильности ввода чисел для вывода уведомления cout << "Неверно введены числа: m < n. Введите числа так, чтобы было m => n" << endl; // Уведомление о введении неверных чисел } } while (m<n); // Проверяем условие что m=>n, если введены неверные числа повтораяем ввод cout << "Число сочетаний = " << soch(n,m); // Выводим число сочетаний путем передачи в функцию введеных чисел m и n _getch(); // Ожидаем нажатия кнопки return 0; // Конец программы }