Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

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

Số nghiệm nguyên không âm: C(n+k-1, k). Số nghiệm nguyên dương: C(k-1, n-1). Tổng cả hai là kết quả.

Ví dụ: n=4, k=7 → 140.

Giải thuật

  • Hàm factorial(n)
  • Hàm nCr(n, r) = factorial(n) / (factorial(n-r) * factorial(r))
  • Kết quả = nCr(n+k-1, k) + nCr(k-1, n-1)

Ví dụ minh họa

#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) << endl; 
    return 0; 
} 

Đầu ra

140