• 信息学奥赛一本通-编程启蒙3219:练36.2 不定方程求解


    3219:练36.2 不定方程求解


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 955     通过数: 687

    【题目描述】

    给定正整数a,b,c。求不定方程 ax+by=c关于未知数x和y的所有非负整数解组数。

    【输入】

    一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。

    【输出】

    一个整数,即不定方程的非负整数解组数。

    【输入样例】

    2 3 18

    【输出样例】

    4

    思路:

    这道题叫我们解方程,可是我们什么信息都没有,要怎么求呢?

    仔细看,这道题是在循环里面的,说明要用循环解决,那要怎么解决呢?

    思考一下,当我们解方程解不出来,要怎么办?

    硬试!!!

    思考一下,我们可以用两层循环来枚举答案

    什么意思呢?就是这样:(去看代码部分)


    代码:

    1. #include
    2. using namespace std;
    3. int main(){
    4. long long a,b,c,cnt=0;//cnt表示有几种答案
    5. cin>>a>>b>>c;//读入
    6. for(int x=0;x<=1000;x++){//x循环一下(从0到1000),因为每个数最大是1000,所以这样一直试x,总能试出来
    7. for(int y=0;y<=1000;y++){//因为每个数最大为 1000,所以逐个尝试y,总能找到答案
    8. if(a*x+b*y==c){//如果符合题目要求,就是找到答案了
    9. cnt++;//答案总数+1
    10. }
    11. }
    12. }
    13. //注意!!!题目说是非负整数解,说明答案可以是正整数或0,要从0开始枚举!!!
    14. cout<
    15. return 0;
    16. }

  • 相关阅读:
    nginx的使用
    RVC:OAK相机的核心
    C和指针 第13章 高级指针话题 13.3 函数指针
    【链表】Leetcode 86. 分隔链表【中等】
    【C++学习第六讲】第一章练习题(含源代码)
    Unity | API鉴权用到的函数汇总
    从零开始的LINUX(一)
    Mac版eclipse如何安装,运行bpmn文件
    设计模式:装饰器模式
    Uniapp 文件选择插件 Ba-FilePicker
  • 原文地址:https://blog.csdn.net/ptyz306/article/details/133841600