求最大公约数

  

参考博客:http://blog.chinaunix.net/uid-24753924-id-177344.html   和   http://canlynet.iteye.com/blog/1095722


参考一:

void swap(int & a, int & b)
{
	int c = a;
	a = b;
	b = c;
}

int gcd(int a,int b)
{
	if(0 == a )
	{
		return b;
	}
	if( 0 == b)
	{
		return a;
	}
	if(a > b)
	{
		swap(a,b);
	}
	int c;
	                                       
	for(c = a % b ; c > 0   ; c = a % b)   
	{
		a = b;                            
		b = c;                             
	}

// 这个for循环可以改为while,如下:
/*	 c = a % b;
	 while(c>0)
	 {
	     a=b;
		 b=c;
		 c=a%b;
	  }  
*/
	return b;
}

参考二:

int gcd(int i, int j)  
{  
    if (i<=0 || j<=0)  
        return -1;  
    while (i != j) {  
        if (i > j)  
            i -= j;  
        else  
            j -= i;  
    }  
    return i;  
}  





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值