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

Số nghiệm nguyên không âm của phương trình tổng C++

Tìm số nghiệm nguyên không âm của x + y + z = n.

Ví dụ: n=2 → 6 nghiệm: (0,0,2), (0,1,1), (0,2,0), (1,0,1), (1,1,0), (2,0,0).

Giải thuật

  • count = 0
  • Ba vòng lặp lồng: i=0..n, j=0..n-i, k=0..n-i-j
  • Nếu i+j+k==n thì count++
  • Trả về count

Công thức toán học: C(n+2, 2) = (n+2)(n+1)/2

Ví dụ minh họa

#include <bits/stdc++.h> 
using namespace std; 

int getEquationSolutionCount(int n) { 
    int count = 0; 
    for (int i = 0; i <= n; i++) { 
        for (int j = 0; j <= n - i; j++) { 
            for (int k = 0; k <= n - i - j; k++) { 
                if (i + j + k == n) { count++; } 
            } 
        } 
    } 
    return count; 
} 

int main() { 
    int n = 10; 
    cout << getEquationSolutionCount(n) << endl; 
    return 0; 
} 

Đầu ra

66