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