HDU 1576 A/B(欧几里得扩展)

题目链接

也知道应该是用扩展欧几里得做,而且是裸模版题,无奈方程一直想错,想了30分钟后,放弃去搞更坑爹的连连看。。。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int x,y;
 4 int ext_eulid(int a,int b)
 5 {
 6     int t,d;
 7     if(b == 0)
 8     {
 9         x = 1;
10         y = 0;
11         return a;
12     }
13     d = ext_eulid(b,a%b);
14     t = x;
15     x = y;
16     y = t - (a/b)*y;
17     return d;
18 }
19 int main()
20 {
21     int t,n,b,i;
22     scanf("%d",&t);
23     while(t--)
24     {
25         scanf("%d%d",&n,&b);
26         i = ext_eulid(b,9973);
27         i = (x*(n/i)%9973+9973)%9973;
28         printf("%d\n",i);
29     }
30     return 0;
31 }
posted @ 2012-08-04 15:04  Naix_x  阅读(222)  评论(0编辑  收藏  举报