2301: 不定方程解的个数

程序代码展示了如何通过循环和条件判断找到方程ax+by+c=0的非负整数解,输出解的总数。
摘要由CSDN通过智能技术生成
题目描述

输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程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的值。一个整数,为合法的解的组数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值