鱼C论坛

 找回密码
 立即注册
查看: 1781|回复: 5

[已解决]求助大佬们算法问题

[复制链接]
发表于 2021-11-10 17:37:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题是这样的
#include <stdio.h>
int main()
{
        int a, b, c, x, y, count = 0;
        scanf_s("%d,%d,%d", &a, &b, &c);
        for (x = 0; x <= c / a; x++) {
                y = (c - a * x) / b;
                if (a * x + b * y == c)
                        count++;
        }
                printf("count=%d\n", count);

}

求不定方程 ax + by = c 关于未知数 x 和 y 的所有非负整数解组数。
输入格式:一行,包含三个正整数 a,b,c,两个整数之间用单个空格隔开。每个数均不大于 1000。
输出格式:一个整数,即不定方程的非负整数解组数。

看看我这代码问题出在哪了
最佳答案
2021-11-10 17:48:26
本帖最后由 jhq999 于 2021-11-10 18:01 编辑
Gacy 发表于 2021-11-10 17:38
执行之后不是我想要的结果


是不是求x,y?
int main()
{
        int a, b, c, x, y, count = 0;
        scanf_s("%d,%d,%d", &a, &b, &c);
        if ((c/a)>=0)
        {
                for (x = 0; x <= c / a; x++) 
                {
                    if (0==(c - a * x)%b)
                   {
                       y = (c - a * x) / b;

                        if (a * x + b * y == c)
                        {                    
                                printf("x=%d,y=%d\n", x,y);
                                count++;
                        }
                    }
                }
                

        }
        if(!count)printf("没有正整数解");

        return 0;
}
2,6,78
x=0,y=13
x=3,y=12
x=6,y=11
x=9,y=10
x=12,y=9
x=15,y=8
x=18,y=7
x=21,y=6
x=24,y=5
x=27,y=4
x=30,y=3
x=33,y=2
x=36,y=1
x=39,y=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-11-10 17:38:21 | 显示全部楼层
执行之后不是我想要的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-10 17:48:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-11-10 18:01 编辑
Gacy 发表于 2021-11-10 17:38
执行之后不是我想要的结果


是不是求x,y?
int main()
{
        int a, b, c, x, y, count = 0;
        scanf_s("%d,%d,%d", &a, &b, &c);
        if ((c/a)>=0)
        {
                for (x = 0; x <= c / a; x++) 
                {
                    if (0==(c - a * x)%b)
                   {
                       y = (c - a * x) / b;

                        if (a * x + b * y == c)
                        {                    
                                printf("x=%d,y=%d\n", x,y);
                                count++;
                        }
                    }
                }
                

        }
        if(!count)printf("没有正整数解");

        return 0;
}
2,6,78
x=0,y=13
x=3,y=12
x=6,y=11
x=9,y=10
x=12,y=9
x=15,y=8
x=18,y=7
x=21,y=6
x=24,y=5
x=27,y=4
x=30,y=3
x=33,y=2
x=36,y=1
x=39,y=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-10 18:07:00 | 显示全部楼层
scanf_s("%d %d %d", &a, &b, &c);
既然是空格隔开这一句应该是这样吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-10 18:50:41 | 显示全部楼层

嗯呢 对的谢谢友友
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-10 18:51:16 | 显示全部楼层
村里小黑 发表于 2021-11-10 18:07
既然是空格隔开这一句应该是这样吧

谢谢奥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 23:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表