发现没有递归方式写的,提供一个。 import java.util.*; public class Solution { /** * * @param x int整型 * @return int整型 */ public int mysqrt (int x) { if(x==1) return x; return mysqrtSub(x,1,x/2); } public int mysqrtSub(int x, int min, int high){ if(min>high) return high; int mid = min+(high-min+1)/2; int s = x/mid; if(mid > s){ return mysqrtSub(x,min,mid-1); }else if(mid < s){ return mysqrtSub(x,mid+1,high); }else{ return mid; } } }