#include<iostream> using namespace std; long long x0, y0; long long ex_gcd(long long a, long long b, long long& x0, long long& y0) { long long m; if (b == 0) { x0 = 1; y0 = 0; return a; } else { m = ex_gcd(b, a%b, x0, y0); long long t = x0; x0 = y0; y0 = t - a / b*y0;//gcd(a,b)=gcd(b,a%b),对应系数相等 } return m; } //g=c/gcd(a,b) //上述方法求得的是ax+by=c/g,并不是通解 //通解为x=g*x0+mt,y=g*y0-nt //其中m=b/g,n为a/g //由于x=g*x0+mt,t可以任意取值,如果取整数的话,该式等价于x%m=g*x0; //最小非负整数解就是(g*x0+m)%m;
求解ax+by=c的通解以及x的最小非负整数解
猜你喜欢
转载自blog.csdn.net/qq_36921652/article/details/79403445
今日推荐
周排行