ในปัญหานี้ เราได้รับค่าจำนวนเต็ม n งานของเราคือการหา x, y, z ที่ทำให้สมการ 2/n = 1/x + 1/y + 1/z เป็นจริง
ตัวอย่างเพื่อเข้าใจปัญหา
Input: n = 4 Output: 4, 5, 20
วิธีการแก้ปัญหา
วิธีแก้ที่ง่ายคือใช้สูตรจากค่า n:
- ถ้า n = 1 ไม่มีคำตอบ
- ถ้า n > 1 คำตอบคือ x = n, y = n+1, z = n(n+1)
สมการจะกลายเป็น: 2/n = 1/n + 1/(n+1) + 1/(n*(n+1))
ตัวอย่างโค้ด
#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;
}
ผลลัพธ์
The value of x and y for the equation 'ax + by = n' is 2 and 1