C语言求解不定方程 ax+by=c 非负整数解组数,代码详解!
```c #include <stdio.h> // 扩展欧几里得算法 int extendedEuclidean(int a, int b, int *x, int *y) { if (b == 0) { *x = 1; *y = 0; return a; } int x1, y1; int gcd = extendedEuclidean(b, a % b, &x1, &y1); *x = y1; *y = x1 - (a / b) * y1; return gcd; } int countNonNegativeSolutions(int a, int b, int c) { int x, y; int gcd = extendedEuclidean(a, b, &x, &y); if (c % gcd!= 0) { return 0; } x *= c / gcd; y *= c / gcd; int newA = a / gcd; int newB = b / gcd; int count = 0; for (int k = 0; x + k * newB >= 0; k--) { if ((x + k * newB) >= 0 && (c - a * (x + k * newB)) % b == 0 && (c - a * (x + k * newB)) / b >= 0) { count++; } } for (int k = 1; x - k * newB <= c / a; k++) { if ((x - k * newB) >= 0 && (c - a * (x - k * newB)) % b == 0 && (c - a * (x - k * newB)) / b >= 0) { count++; } } return count; } int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); int result = countNonNegativeSolutions(a, b, c); printf("%d\n", result); return 0; } ``` ######[AI写代码神器 | 499点数解答 | 2024-11-07 11:21:58]
- MATLAB 代码:打造“正方形与闭合曲线识别”图形用户界面 (字节豆包 | 193点数解答 | 2024-11-13 19:58:57)231
- Matlab:打造正方形与闭合曲线识别图形界面,一键提交图片开启识别之旅!(GPT | 366点数解答 | 2024-11-13 19:59:10)252
- Python 绘图:可视化展示涨跌时的成交量(GPT | 104点数解答 | 2024-11-21 20:57:20)275
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)49
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)255
- Python与HTML+JavaScript实现3D粒子爱心动画:代码剖析与开发要点(字节豆包 | 1487点数解答 | 2025-08-07 11:24:56)167
- Python 用 Matplotlib 和 NumPy 绘制 3D 爱心动画:开发要点与注意事项(DeepSeek | 130点数解答 | 2025-08-29 21:24:33)160
- C++:点到直线距离计算程序设计及优化、扩展与错误处理探讨(字节豆包 | 478点数解答 | 2024-11-19 19:04:39)158
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)339
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)352
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)347
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)351