欧几里得算法和牛顿迭代法
求最大公约数
辗转相除法:f(x,y) = f(y,x%y),x和y的最大公约数和y和x%的最大公约数相同1
2
3
4
5
6
7
8public static int Gcd (int a, int b) {
while (b > 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
求平方根
牛顿迭代法: k=(k+x/k)/2
1 | public static double Sqrt (int x) { |
之前也听说卡马克快速平方根倒数算法,好奇这几个平方根算法哪个更快
cmark:
1 | public static double cmark(int number) { |
结果是库函数最快,其次是牛顿迭代法(和库函数差不多),卡马克稍慢,啊哈哈哈