用牛顿迭代法求整数的平方根
这是一个挺常见的面试题,解法也五花八门。 下面的代码用牛顿迭代法解决这个问题。因为输入和输出都是整数,所以只要前后两项相差小于1,就可以终止了 int sqrt(int x) { if (x < 0) abort(); if (x == 0) return 0; if (x == 1) return 1; double t = x >> 1; t = (t + x / t) / 2; while (true) { double v = (t + x / t) / 2; if (…