当前位置:   article > 正文

根号10在Java中写成_开根号_乐鑫科技笔试题_牛客网

java中开根号*10

import java.util.*;

public class Main{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

Main main = new Main();

double n = sc.nextDouble();

int m = sc.nextInt();

System.out.println(main.mySqrt(n, m));

}

private double mySqrt(double n, int m){

/*

我这里输入跟题目给的不一样,n 是 m,而 m 是 n

我们使用二分逼近的方法

首先 mid = (left + right) >>> 1;

然后将 n 除以 mid ,m - 1 次

为啥?因为我们要跟 mid 进行比较,判断 mid 是否是适合 n 开 m 次方后的数

比如 n 开方,那么我们只需要 n 除以 mid 一次即可,然后将结果跟 mid 比较

如果接近,那么继续逼近

同时,我们可以换做是 m 个 mid 相乘,然后跟 n 进行比较,一样的思路

只不过一个是乘,一个是除

*/

double pre = 0;

double left = 0;

double right = n;

//迭代精准度

double eps = 1e-12;

while(right - left > eps || left - right > eps){

double mid = (left + right) / 2;

double temp = 1;

for(int i = 0; i 

temp *= mid;

}

if(temp > n){

right = mid;

}else{

left = mid;

}

pre = mid;

}

return pre;

}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1018398
推荐阅读
相关标签
  

闽ICP备14008679号