#include <iostream> using namespace std; class Solution { public: int sqrt(int x) { if(x <2) return x; int lft =1 ,rgt = x; int mid = (lft+rgt)/2; while(lft+1<rgt){ if(mid == x/mid) return mid; if(mid < x/ mid){ lft = mid; } else{ rgt = mid; } mid = (lft+rgt)/2; } if( rgt<=mid/rgt) return rgt; return lft; } }; int main() { Solution sol; for(int i =1;i<50;i++) cout<<sol.sqrt(i)<<endl; return 0; }
原文:http://www.cnblogs.com/Azhu/p/4363577.html