最大公约数与最小公倍数
求最大公约数(递归)
typename gcd(typename a, typename b)//求最大公约数
{
return b == 0 ? a : gcd(b, a % b);//换了个位置,b==0代表余数为零且无法继续下去
}
即使b>a,在经过一次递归后都会变成(new)a>(new)b
这样写鲁棒性得以提高
知道最大公约数后可以直接用公式将最小公倍数求出
用a与b的乘积除以他的最大公约数即可得
最小公倍数=(a*b)/最大公约数
typename gcd(typename a, typename b)//求最大公约数
{
return b == 0 ? a : gcd(b, a % b);//换了个位置,b==0代表余数为零且无法继续下去
}
即使b>a,在经过一次递归后都会变成(new)a>(new)b
这样写鲁棒性得以提高
用a与b的乘积除以他的最大公约数即可得
最小公倍数=(a*b)/最大公约数