信息学奥赛一本通C++语言——1101:不定方程求解
作者:互联网
【题目描述】
给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。
【输入】
一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。
【输出】
一个整数,即不定方程的非负整数解组数。
【输入样例】
2 3 18
【输出样例】
4
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
int count=0;
cin >> a >> b >> c;
for(int x=0; x<=c/a; x++){ //由原式可得x=c/a-b*y/a,因x,y非负,所0<=x<=c/a,遍历x
int y=(c-a*x)/b;//求y的值
if(a*x+b*y==c){//带入原式验证
count++;//计数器
}
}
cout << count << endl;
return 0;
}
标签:非负,int,样例,整数,解组,C++,奥赛,1101,不定 来源: https://blog.csdn.net/weixin_46272402/article/details/104672239