Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm x và y thỏa mãn ax + by =n trong C ++

Trong bài toán này, chúng ta có ba giá trị nguyên a, b và n. Nhiệm vụ của chúng ta là tìm x và y thỏa mãn ax + by =n.

Hãy lấy một ví dụ để hiểu vấn đề

Input : a = 4, b = 1, n = 5
Output : x = 1, y = 1

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là tìm giá trị từ 0 đến n thỏa mãn phương trình. Chúng tôi sẽ làm điều này bằng cách sử dụng các dạng đã thay đổi của phương trình.

x = (n - by)/a
y = (n- ax)/b

Nếu chúng tôi nhận được một giá trị thỏa mãn phương trình, chúng tôi sẽ in các giá trị nếu không sẽ in " không tồn tại nghiệm ".

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi

#include <iostream>
using namespace std;
void findSolution(int a, int b, int n){
   for (int i = 0; i * a <= n; i++) {
      if ((n - (i * a)) % b == 0) {
         cout<<i<<" and "<<(n - (i * a)) / b;
         return;
      }
   }
   cout<<"No solution";
}
int main(){
   int a = 2, b = 3, n = 7;
   cout<<"The value of x and y for the equation 'ax + by = n' is ";
   findSolution(a, b, n);
   return 0;
}

Đầu ra

The value of x and y for the equation 'ax + by = n' is 2 and 1