1 #include<stdio.h>
2 int gcd(int a, int b)
3 {
4 if (b == 0)
5 return a;
6 return gcd(b, a % b);
7 }
8
9 int main(void)
10 {
11 int a, b;
12 printf("please input a:\n");
13 scanf("%d", &a);
14 printf("please input b:\n");
15 scanf("%d", &b);
16 printf("rtn = %d\n", gcd(a, b));
17 return 0;
18 }
扩展算法先挖坑
1 /*
2 * extend_lcd
3 */
4
5 #include<stdio.h>
6 int extended_euclid(int a, int b, int *x, int *y)
7 {
8 int n, tmp;
9
10 if(b == 0){
11 *x = 1;
12 *y = 0;
13 return a;
14 }
15 n = extended_euclid(b, a % b, x, y);
16 tmp = *x;
17 *x = *y;
18 *y = tmp - (a / b) * *y;
19 return n;
20 }
21
22 int main(void)
23 {
24 int a, b;
25 int x, y;
26 printf("please input a and b:\n");
27 scanf("%d %d", &a, &b);
28 extended_euclid(a, b, &x, &y);
29 printf("x = %d, y = %d\n", x , y);
30 return 0;
31 }