我是靠谱客的博主 敏感小蜜蜂,最近开发中收集的这篇文章主要介绍开方在java中怎么计算_不使用java JDK已有的API实现任意数字的开方,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在java面试中,我们经常被要求,不使用java jdk自带的API来实现任意数字的开方实现,本文作者总结了下这个需求的实现方法,并将实现代码放上,供朋友们参考,不喜勿喷,谢谢。package com.demo.test;

import java.util.Scanner;

public class TestGen {

@SuppressWarnings("resource")

public static void main(String[] args) {

System.out.print("请输入你要开方的任意正数:t");

Scanner scanner1 = new Scanner(System.in);

double num = scanner1.nextDouble();

System.out.print("请输入你要开方允许的误差,不能小于0哦:t");

//可接受的结果误差

double error = scanner1.nextDouble();

// double error = 0.00000000000001;

String result = getGen(num, error);

System.out.println(result);

}

/**

* * 求任意数字的开方

*

* @param num

*            输入的任意数字

* @param error

*            可接受的结果误差

* @param isMin

*            是否小于1 ture 小于 false 大于1

* @return

*/

private static String getGen(double num, double error) {

if (num <= 0) {

return "只能输入正数。";

} else if (num == 1) {

return String.valueOf(num);

}

boolean isMin = num 

String allResult = null;

double befor = 1;

double current = num;

double temp = 0;

while (true) {

temp = current;

current = (befor + current) / 2;

double result = current * current;

double currentErr = (result > num) ? (result - num)

: (num - result);

if (error >= currentErr) {

allResult = String.valueOf(current);

break;

} else {

if (isMin) {

if (result > num) {

befor = current;

current = temp;

}

} else {

if (result 

befor = current;

current = temp;

}

}

}

}

return allResult;

}

}

上面的代码实现的主要思想是根据数值逼近思想中的中间值逼近的算法实现的,即每次都取两个数值之间的中间值,来不断缩小和想要求职的差距,进而不断缩小误差,直到符合误差需求。

最后

以上就是敏感小蜜蜂为你收集整理的开方在java中怎么计算_不使用java JDK已有的API实现任意数字的开方的全部内容,希望文章能够帮你解决开方在java中怎么计算_不使用java JDK已有的API实现任意数字的开方所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部