赞
踩
输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程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的值。一个整数,为合法的解的组数.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。