鱼C论坛

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

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

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

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

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

x
问题是这样的
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a, b, c, x, y, count = 0;
  5.         scanf_s("%d,%d,%d", &a, &b, &c);
  6.         for (x = 0; x <= c / a; x++) {
  7.                 y = (c - a * x) / b;
  8.                 if (a * x + b * y == c)
  9.                         count++;
  10.         }
  11.                 printf("count=%d\n", count);

  12. }
复制代码


求不定方程 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?
  1. int main()
  2. {
  3.         int a, b, c, x, y, count = 0;
  4.         scanf_s("%d,%d,%d", &a, &b, &c);
  5.         if ((c/a)>=0)
  6.         {
  7.                 for (x = 0; x <= c / a; x++)
  8.                 {
  9.                     if (0==(c - a * x)%b)
  10.                    {
  11.                        y = (c - a * x) / b;

  12.                         if (a * x + b * y == c)
  13.                         {                    
  14.                                 printf("x=%d,y=%d\n", x,y);
  15.                                 count++;
  16.                         }
  17.                     }
  18.                 }
  19.                

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

  22.         return 0;
  23. }
复制代码
  1. 2,6,78
  2. x=0,y=13
  3. x=3,y=12
  4. x=6,y=11
  5. x=9,y=10
  6. x=12,y=9
  7. x=15,y=8
  8. x=18,y=7
  9. x=21,y=6
  10. x=24,y=5
  11. x=27,y=4
  12. x=30,y=3
  13. x=33,y=2
  14. x=36,y=1
  15. x=39,y=0
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-11-10 17:38:21 | 显示全部楼层
执行之后不是我想要的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


是不是求x,y?
  1. int main()
  2. {
  3.         int a, b, c, x, y, count = 0;
  4.         scanf_s("%d,%d,%d", &a, &b, &c);
  5.         if ((c/a)>=0)
  6.         {
  7.                 for (x = 0; x <= c / a; x++)
  8.                 {
  9.                     if (0==(c - a * x)%b)
  10.                    {
  11.                        y = (c - a * x) / b;

  12.                         if (a * x + b * y == c)
  13.                         {                    
  14.                                 printf("x=%d,y=%d\n", x,y);
  15.                                 count++;
  16.                         }
  17.                     }
  18.                 }
  19.                

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

  22.         return 0;
  23. }
复制代码
  1. 2,6,78
  2. x=0,y=13
  3. x=3,y=12
  4. x=6,y=11
  5. x=9,y=10
  6. x=12,y=9
  7. x=15,y=8
  8. x=18,y=7
  9. x=21,y=6
  10. x=24,y=5
  11. x=27,y=4
  12. x=30,y=3
  13. x=33,y=2
  14. x=36,y=1
  15. x=39,y=0
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-10 18:07:00 | 显示全部楼层
  1. scanf_s("%d %d %d", &a, &b, &c);
复制代码

既然是空格隔开这一句应该是这样吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯呢 对的谢谢友友
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢奥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 17:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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