本文主要是介绍2301: 不定方程解的个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程ax+by+c=0,其中x、y为未知量且不超过10000,当给定a、b、c的值以后,可求出n组x、y的非负整数解,n>=0,,其中a,b,c均为[-10000,10000].
输入描述
一行,三个空格隔开的整数,为a、b、c的值。
输出描述
一个整数,为合法的解的组数.
输入样例 复制
3 2 -2
输出样例 复制
1
#include <bits/stdc++.h>
using namespace std;int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);if(a == 0 && b == 0) {if(c != 0) {printf("0\n");} return 0;}if(a == 0) {if(c % b == 0 && -c / b >= 0) {printf("1\n");} else {printf("0\n");}return 0;}if(b == 0) {if(c % a == 0 && -c / a >= 0) {printf("1\n");} else {printf("0\n");}return 0;}int count = 0;for(int x = 0; x <= 10000; x++) {if((a * x + c) % b == 0) {int y = (-a * x - c) / b;if(y >= 0) {count++;}}}printf("%d", count);return 0;
}
输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程ax+by+c=0,其中x、y为未知量且不超过10000,当给定a、b、c的值以后,可求出n组x、y的非负整数解,n>=0,,其中a,b,c均为[-10000,10000].一行,三个空格隔开的整数,为a、b、c的值。一个整数,为合法的解的组数.
这篇关于2301: 不定方程解的个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!