描述
Given two numbers, number a
and number b
. Find the greatest common divisor
of the given two numbers.
In mathematics, the greatest common divisor (gcd) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers.
您在真实的面试中是否遇到过这个题?
是
样例
Given a = 10
, b = 15
, return 5
.
Given a = 15
, b = 30
, return 15
.
辗转相除法,没有什么难度。
class Solution {
public:
/**
* @param a: the given number
* @param b: another number
* @return: the greatest common divisor of two numbers
*/
int gcd(int a, int b) {
// write your code here
swap(a,b);
while(a%b!=0){
a=a%b;
swap(a,b);
}
return b;
}
void swap(int &a,int &b){
if(a<b){
a^=b;
b^=a;
a^=b;
}
}
};