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

Số nghiệm nguyên của phương trình x1 + x2 +…. + xN =k trong C ++

Các nghiệm của phương trình là

  • Số nghiệm nguyên không âm của phương trình là $ \ left (\ begin {array} {c} n-k + 1 \\ k \ end {array} \ right) $
  • Số nghiệm nguyên dương của phương trình là $ \ left (\ begin {array} {c} k-1 \\ n-1 \ end {array} \ right) $

Thêm cả hai để có câu trả lời cần thiết. Hãy xem một ví dụ.

Đầu vào

n = 4
k = 7

Đầu ra

140

Thuật toán

  • Khởi tạo các số n và k.
  • Tìm nghiệm nguyên của các số không âm và dương.
  • Thêm cả hai.
  • 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 product = 1;
   for (int i = 2; i <= n; i++) {
      product *= i;
   }
   return product;
}
int nCr(int n, int r) {
   return factorial(n) / (factorial(n - r) * factorial(r));
}
int main() {
   int n = 4;
   int k = 7;
   cout << nCr(n + k - 1, k) + nCr(k - 1, n - 1) &l<t; 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.

140