Greatest Common Divisor:
//初版本:
int GCD(int left,int right){
int maxNum=left>right?left:right;
int minNum=left>right?right:left;
int remainder=maxNum%minNum;
while(remainder){
maxNum=minNum;
minNum=remainder;
remainder=maxNum%minNum;
}
return minNum;
}
//改进:%运算耗时;考虑位运算,用奇偶判断及减代替模运算;
int GCD(int left,int right){
if(left==right)
return left;
if(left<right)
return GCD(right,left);
if(!(left&1)&&!(right&1))
return GCD(right>>1,left>>1)<<1;
if(!(left&1)&&(right&1))
return GCD(left>>1,right);
if((left&1)&&!(right&1))
return GCD(left,right>>1);
return GCD(left-right,left);
}