最近有人貼出bat的面試題,題目鏈結。
就是實現系統的開根號的操作,並且要求一定的誤差,其實這類題就是兩種方法,二分法
和牛頓迭代
,現在用oc的方法實現如下:
-(double)sqrt_binary:(int)num else
}return y;
}//呼叫
double result = [self sqrt_binary:5];
nslog(@"my result:%f--real result:%f",result,sqrt(5));
-(double)sqrt_newton:(int)num
return y;
}//呼叫
double result = [self sqrt_newton:5];
nslog(@"my result:%f--real result:%f",result,sqrt(5));
參考 :二分法和牛頓迭代法求平方根(python實現) 二分法 牛頓法開根號
牛頓法 public static double sqrtn1 double value,double accurary double init 1.0 while math.abs init init value accurary return init 二分法和牛頓法的時間複雜度都是o logn...
二分法求方程的根 二分法開根號和牛頓迭代法
在刷水題的時候看到乙個要開根號的,雖然可以math.sqrt 解決這個問題 problem 2009 acm.hdu.edu.cn 抱著好玩的心態,找到了關於開根號的兩種演算法,二分法開根號和牛頓迭代法。第一種是二分法開根號,當start end的時候,先計算mid,然後比較mid的平方是不是 x,...
二分法和牛頓迭代法
先說乙個面試題 問 1.2 0.2 1 答案是false!為什麼?其原因在於十進位制和二進位制的轉換上,計算機先要把十進位制的數轉化為二進位制,然後再計算。但是,在轉化中,浮點數轉化為二進位制,就出問題了,例如 十進位制的 0.1,轉化為二進位制是 0.00011001100110011001100...