不定方程求解(信息学奥赛一本通-1101)
【题目描述】
给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。
【输入】
一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。
【输出】
一个整数,即不定方程的非负整数解组数。
【输入样例】
2 3 18
【输出样例】
4
【题解代码】
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a, b, c; cin >> a >> b >> c;
int cnt = 0;
for (int x = 0; x <= c / a; x++)
{
for (int y = 0; y <= c / b; y++)
{
if (a * x + b * y == c) cnt++;
}
}
cout << cnt;
return 0;
}