Создайте функцию, которая для заданных и (1 ≤ n≤m ) вычисляет количе
ство всех различных размещений из элементов по , используя рекуррентное
соотношение:
C++

Нет комментариев
Ответы

#include <iostream>
#include <iomanip>
using namespace std;
int disp(int n,int m) {
if (n>1) return disp(n-1,m)*(m-n+1);
return m;
}
int main() {
int n,m;
do {
cout<<"m = "; cin>>m;
cout<<"n = "; cin>>n;
if (n>m) cout<<"invalid input"<<endl;
}
while (m>=n);
cout<<disp(n,m)<<endl;
system("pause");
return 0;
}
m = 5
n = 2
20
m = 6
n = 3
120
7 комментария:
do { cout<<"m = "; cin>>m; cout<<"n = "; cin>>n; if (n>m) cout<<"invalid input"<<endl; }
это что за за цикл такой? бесконечный ввод m и n
do { cout<<"m = "; cin>>m; cout<<"n = "; cin>>n; if (n>m) cout<<"invalid input"<<endl; } while (m>=n);
еще вопрос по условию если n = 1 ?!?! программа крашнеться получаеться
Это не бесконечный ввод, а проверка на правильность ввода, n<=m. Какой смысл подсчитывать размещения из m элементов по n, если n = m ? Всего одно размещение и получите. Если хотите, чтобы программа работала при n = m, то замените строку while (m>=n); на строку while (m>n); , будет выдавать 1 программа.
ок спасибо
Пожалуйста.






