给定a,b和n。找到满足ax + by = n的x和y。打印满足等式的x和y中的任何一个
例子 :
Input : n=7 a=2 b=3
Output : x=2, y=1
Explanation: here x and y satisfies the equation
Input : 4 2 7
Output : No solution
我们可以使用线性Diophantine方程检查是否存在任何解,但是在这里我们需要找出该方程的解,因此我们可以简单地迭代从0到n的所有可能值,因为对于该给定的方程,它不能超过n。因此,用纸和笔求解该方程式可得y =(n-ax)/ b ,类似地,我们得到另一个数为x =(n-by)/ a 。如果没有一个值满足方程式,最后我们打印“无解决方案”
C++
// CPP program to find solution of ax + by = n
#include
using namespace std;
// function to find the solution
void solution(int a, int b, int n)
{
// traverse for all possible values
for (int i = 0; i * a <= n; i++) {
// check if it is satisfying the equation
if ((n - (i * a)) % b == 0) {
cout << "x = " << i << ", y = "
<< (n - (i * a)) / b;
return;
}
}
cout << "No solution";
}
// driver program to test the above function
int main()
{
int a = 2, b = 3, n = 7;
solution(a, b, n);
return 0;
}
Java
// Java program to find solution
// of ax + by = n
import java.io.*;
class GfG {
// function to find the solution
static void solution(int a, int b, int n)
{
// traverse for all possible values
for (int i = 0; i * a <= n; i++)
{
// check if it is satisfying the equation
if ((n - (i * a)) % b == 0)
{
System.out.println("x = " + i +
", y = " +
(n - (i * a)) / b);
return ;
}
}
System.out.println("No solution");
}
public static void main (String[] args)
{
int a = 2, b = 3, n = 7;
solution(a, b, n);
}
}
// This code is contributed by Gitanjali.
Python3
# Python3 code to find solution of
# ax + by = n
# function to find the solution
def solution (a, b, n):
# traverse for all possible values
i = 0
while i * a <= n:
# check if it is satisfying
# the equation
if (n - (i * a)) % b == 0:
print("x = ",i ,", y = ",
int((n - (i * a)) / b))
return 0
i = i + 1
print("No solution")
# driver program to test the above function
a = 2
b = 3
n = 7
solution(a, b, n)
# This code is contributed by "Sharad_Bhardwaj".
C#
// C# program to find solution
// of ax + by = n
using System;
class GfG {
// function to find the solution
static void solution(int a, int b, int n)
{
// traverse for all possible values
for (int i = 0; i * a <= n; i++)
{
// check if it is satisfying the
// equation
if ((n - (i * a)) % b == 0)
{
Console.Write("x = " + i +
", y = " +
(n - (i * a)) / b);
return ;
}
}
Console.Write("No solution");
}
// Driver code
public static void Main ()
{
int a = 2, b = 3, n = 7;
solution(a, b, n);
}
}
// This code is contributed by Vt_m.
PHP
Javascript
输出 :
x = 2, y = 1