gcd--最大公倍数

求两个数的最大公倍数

考完五校的第一天,在家补视频ing,简单来说的话就是给了两个数A,B

假设他们两个的最大公倍数为d,那么A=X*d,B=Y*d

gcd就是把一直gcd(B%A,A)不断更新,其中我们用最简单的情况分析

也就是说B/A=1,B%A=(Y-X)d,我们可以看到,B%A也是含有因数d

这样我们就可以把两个较大的数逐步分解为较小的问题来解决。

就说这么多了吧,才看了两个视频,加油,奥利给!

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 int gcd(int x,int y)
 5 {
 6     if (x==0)
 7     return y;
 8     else return gcd(y%x,x);    
 9 }
10 int main()
11 {
12     int a,b,t;
13     scanf ("%d%d",&a,&b);
14     printf ("%d",gcd(a,b));    
15     return 0;
16 }

猜你喜欢

转载自www.cnblogs.com/very-beginning/p/12194146.html