이 문제에서는 다음 형식에 대한 n 변수의 선형 방정식이 제공됩니다.
coeff1(var1) + coeff2(var2) + … + coeffn(varn) = value
n개 변수의 선형 방정식의 해의 개수를 구합니다.
문제를 이해하기 위해 예를 들어보겠습니다.
입력
coeff[] = {3, 1}, value = 4
출력
1
설명
Equation : 3x + y = 4. Solution, x = 0, y = 4.
해결 방법
문제에 대한 간단한 해결책은 방정식의 값을 평가하는 것입니다. 그런 다음 재귀적으로 호출하여 값을 업데이트합니다. 값이 0이면 솔루션 개수는 1입니다. 그렇지 않으면 계수 값을 빼서 값으로 반복됩니다.
우리 솔루션의 작동을 설명하는 프로그램
예
#include<iostream> using namespace std; int countSolutionsEq(int coeff[], int start, int end, int value) { if (value == 0) return 1; int coefCount = 0; for (int i = start; i <= end; i++) if (coeff[i] <= value) coefCount += countSolutionsEq(coeff, i, end, value - coeff[i]); return coefCount; } int main() { int coeff[] = {3, 5, 1, 2}; int value = 6; int n = sizeof(coeff) / sizeof(coeff[0]); cout<<"The number of solutions of the linear equation is "<<countSolutionsEq(coeff, 0, n - 1, value); return 0; }
출력
The number of solutions of the linear equation is 8