Информатика Архивный вопрос

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


C++

Создайте функцию, которая для заданных и (1 ≤ n≤m ) вычисляет количе­<br> ство всех различных размещ
Нет комментариев

Ответы

Гость

#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 программа.
ок спасибо
Пожалуйста.

Похожие вопросы