if(a == 0 || a == 1){
return a;
}
for(double i=0;i<a/2;i=i+0.00001){ //看妳要精確到什麽程度
if((a-0.000001)<i*i<(a+0.000001)){ //不要用等號 用差值
return i;
return -1;
上面代碼提供基本思路 : 計算機不可能將所有的實屬取遍 肯定會有精度的 所以求的只能是近似值.