M0003 枚举解整数方程

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了M0003 枚举解整数方程相关的知识,希望对你有一定的参考价值。

问题描述:
若a和b为正整数,且a+ab+b=m,求a+b。
输入:
若干个正整数m。
输出:
a+b的值。如果有多个a+b满足原方程式则多行输出,每一行输出一个a+b。
对于每个m,输出a+b之后输出一个空行隔开结果。
样例输入:
25
23
样例输出
13

12
9
8

问题分析:
本题用枚举法来实现。
因为求a+b=b+a,所以只需要枚举a≤b的情况。

解题C语言程序如下:

/* M0003 枚举解整数方程 */

#include <stdio.h>

int main()

    int m;
    while(~scanf("%d", &m)) 
        for (int a = 1; a < m; a++)
            for (int b = a; b < m; b++)
                if (a + a * b + b == m)
                    printf("%d\\n", a + b);
        printf("\\n");
    

    return 0;

以上是关于M0003 枚举解整数方程的主要内容,如果未能解决你的问题,请参考以下文章

LQ0001 方程整数解枚举

蓝桥杯2015初赛-方程整数解-枚举

luogu2312 解方程

[PTA]7-21 求特殊方程的正整数解

数学解方程

FZU 2125 简单的等式 数学/枚举解方程式