Предмет: Информатика, автор: bobbygrenn

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


C++

Приложения:

Ответы

Автор ответа: srzontmp
0
#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




Автор ответа: bobbygrenn
0
do {
cout<<"m = "; cin>>m;
cout<<"n = "; cin>>n;
if (n>m) cout<<"invalid input"<<endl;
}
while (m>=n);
Автор ответа: bobbygrenn
0
еще вопрос по условию если n = 1 ?!?! программа крашнеться получаеться
Автор ответа: srzontmp
0
Это не бесконечный ввод, а проверка на правильность ввода, n<=m. Какой смысл подсчитывать размещения из m элементов по n, если n = m ? Всего одно размещение и получите. Если хотите, чтобы программа работала при n = m, то замените строку while (m>=n); на строку while (m>n); , будет выдавать 1 программа.
Автор ответа: bobbygrenn
0
ок спасибо
Автор ответа: srzontmp
0
Пожалуйста.
Похожие вопросы
Предмет: Алгебра, автор: zahlebnaula
Предмет: История, автор: katakukarkina
Предмет: Математика, автор: bojkotomko