hdu 2669 Romantic 扩展欧几里德
利用扩展欧几里德算法可以解方程ax+by=c. 当使用扩展欧几里德算法时,当x+b时,y-a。 欧几里德算法 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数 假设d 是(b,a mod b)的公约数,则 d | b , d |r ,但是a = kb +r 因此d也是(a,b)的公约数 因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证 。 其算法:(a为任意非负整数,b为任意正整数) /* * hdu2669.c * * Created on: 2011-9-13 * Author: bjfuwangzhu */#include<stdio.h>int x, y;int extend_gcd(int a, int b) { if (b == 0) { x = 1, y = 0; return a; } int d = extend_gcd(b, a % b); int tx = x; x = y, y = tx - a / b * y; return d;}int main() {#ifndef ONLINE_JUDGE freopen("data