Computer >> Máy Tính >  >> Lập trình >> C ++

Số mảng có kích thước N có phần tử là số nguyên dương và tổng là K trong C ++

Ta được hai số n và k. Chúng ta cần tìm số mảng có thể được tạo thành bằng cách sử dụng n số có tổng là k.

Số mảng có kích thước N với tổng K là $ \ dbinom {k - 1} {n - 1} $.

Đây là một công thức đơn giản để tìm các mảng số có thể được tạo thành bằng cách sử dụng n phần tử có tổng k. Hãy xem một ví dụ.

Đầu vào

n = 1
k = 2

Đầu ra

1

Mảng duy nhất có thể được hình thành là [2]

Đầu vào

n = 2
k = 4

Đầu ra

3

Các mảng có thể được tạo thành là [1, 3], [2, 2], [3, 1].

Thuật toán

  • Khởi tạo các số n và k.
  • Viết một hàm để tính giai thừa của một số.
  • Bây giờ, hãy viết hàm chính của chúng tôi để tính toán nhị thức như đã thấy ở trên.
  • Trả lời câu trả lời.

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

#include <bits/stdc++.h>
using namespace std;
int factorial(int n) {
   int result = 1;
   for (int i = 2; i <= n; i++) {
      result *= i;
   }
   return result;
}
int getNumberOfArraysCount(int n, int k) {
   return factorial(n) / (factorial(k) * factorial(n - k));
}
int main() {
   int N = 5, K = 8;
   cout << getNumberOfArraysCount(K - 1, N - 1) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

35