1. 问题描述:
给定三个正整数 n,a,b,请你找到两个非负整数 x,y,使得 ax + by = n 成立。
输入格式
第一行包含整数 n。第二行包含整数 a。第三行包含整数 b。
输出格式
如果不存在符合条件的 x,y,则输出一行 NO 即可。否则,第一行输出 YES,第二行输出 x,y。如果方案不唯一,则输出 x 最小的方案。
数据范围
所有测试点满足 1 ≤ n,a,b ≤ 1000。
输入样例1:
7
2
3
输出样例1:
YES
2 1
输入样例2:
100
25
10
输出样例2:
YES
0 10
输入样例3:
15
4
8
输出样例3:
NO
来源:https://www.acwing.com/problem/content/description/4299/
2. 思路分析:
分析题目可以知道数据范围不大,所以我们可以直接暴力枚举x,y,求解是否存在这样的x和y使得等式成立即可。
3. 代码如下:
class Solution:
def process(self):
n, a, b = int(input()), int(input()), int(input())
for x in range(1001):
for y in range(1001):
if a * x + b * y == n:
print("YES")
print(x, y)
return
print("NO")
if __name__ == '__main__':
Solution().process()