为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

最大公约数

来自NOCOW
跳转到: 导航, 搜索

类似1楼,转换成循环罢了~

function gys(x,y:longint):longint;
var r:longint;
begin
  if x<y then begin 
    r:=x;x:=y;y:=r;
  end; {确保x>y}
  repeat
    r:=y;
    y:=x mod y ;
    x:=r;
  until y=0;
  gys:=x;
end;

[编辑] 欧几里得算法

#include<stdio.h>
int gcd(long long a,long long b);
 
int main()
{
	//Bilibili Blabla…
	return 0;
}
 
int gcd(long long a,long long b)
{
	if(a==b||a==0||b==0)
		return (a=0?b:a);
	else if(a>b)
		gcd(b,a%b);
	else gcd(a,b%a);
}

[编辑] 欧几里得算法

// 辗转相减法, 简单高效, 清晰快捷, 无除法运算  
int GetMaxCommonDivide_new(int n, int m)
{
    while (n != m) {
        if (n > m)
            n = n - m;
        else
            m = m - n;
    }
    return n;
}
//摘自http://blog.csdn.net/feixiaoxing/article/details/6991770 作者:shines
个人工具