Gacy 发表于 2021-11-10 17:37:04

求助大佬们算法问题

问题是这样的:#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。
输出格式:一个整数,即不定方程的非负整数解组数。

看看我这代码问题出在哪了{:10_254:}

Gacy 发表于 2021-11-10 17:38:21

执行之后不是我想要的结果

jhq999 发表于 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

村里小黑 发表于 2021-11-10 18:07:00

scanf_s("%d %d %d", &a, &b, &c);
既然是空格隔开这一句应该是这样吧

Gacy 发表于 2021-11-10 18:50:41

jhq999 发表于 2021-11-10 17:48
是不是求x,y?

嗯呢 对的谢谢友友{:10_254:}

Gacy 发表于 2021-11-10 18:51:16

村里小黑 发表于 2021-11-10 18:07
既然是空格隔开这一句应该是这样吧

谢谢奥{:10_254:}
页: [1]
查看完整版本: 求助大佬们算法问题