এই সমস্যায়, আমাদের n ভেরিয়েবল ওয়ালা একটি লিনিয়ার সমীকরণ দেওয়া আছে নিচের ফর্মে:
coeff1(var1) + coeff2(var2) + … + coeffn(varn) = value
n ভেরিয়েবল ওয়ালা লিনিয়ার সমীকরণের সমাধানের সংখ্যা বের করতে হবে।
উদাহরণ
ইনপুট
coeff[] = {3, 1}, value = 4
আউটপুট
1
ব্যাখ্যা
সমীকরণ: 3x + y = 4. সমাধান, x = 0, y = 4.
সমাধানের পদ্ধতি
এই সমস্যার সহজ সমাধান হল সমীকরণের মান ইভ্যালুয়েট করা। তারপর রিকারসিভ কল দিয়ে মান আপডেট করা। যদি মান ০ হয়, তবে সমাধান কাউন্ট ১। অন্যথায় কোইফিশিয়েন্ট মান বিয়োগ করে রিকার্সন চালাতে হবে।
প্রোগ্রাম উদাহরণ
#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