java实现开根号的运算

您所在的位置:网站首页 根号下开根号怎么算 java实现开根号的运算

java实现开根号的运算

2024-03-19 23:37| 来源: 网络整理| 查看: 265

面试的时候,偶然被问到,开根号的实现,虽然给面试官讲解了思路,但是没有实际实现过,今天闲来无事,就把自己的思路写一下,做个笔记。

如果某个数字正好可以开根号为2个整数,例如1,4,9等,那就很简单了。

如果某个数字不可以正好开根号为2个整数,而且要保留几位精度,例如:2,3,5等,我们该怎么办呢?????

首先我们可以把这个数字分成整数部分和小数部分,分别计算。

例如√5≈2.236  我们可以先算出整数部分为2,然后在根据保留几位精度,去计算小数部分。依次计算十分位、百分位和千分位等,然后把整数位+十分位+百分位+千分位+。。。,结果就是我们想要的结果了。

下面我写了一个通用的方法,可以根据传的参数来保留精度。

package comc.n; import java.math.BigDecimal; public class Square { public static void main(String[] args) { System.out.println(Math.sqrt(5)); System.out.println(MathSqure(5, 6)); } /** * * @param n 需要开根号的数据 * @param m 需要保留的精度,即几位小数 * @return */ public static double MathSqure(int n, int m){ double[] arr = new double[m]; if(m >0){ arr = sc(m); } int s = sq(n); return sb(n, s, arr); } /** * 计算整数位 * @param n * @return */ public static int sq(int n){ if( n == 1){ return 1; } int tmp = 0; for(int i=1;i n){ tmp = i-1; break; } } return tmp; } /** * 计算要保留几位小数 * @param m * @return */ public static double[] sc(int m){ double[] arr = new double[m]; int num = 0; while(num != m){ double f = 1; for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3