【发布时间】:2016-02-16 02:56:45
【问题描述】:
我正在尝试编写一个程序,该程序使用古代巴比伦平均方法计算数字的平方根。该程序的目标是显示用户输入的数字、平均方法的值、使用数学包的值,以及平均方法和数学包之间的差异。我遇到的唯一问题是差异的输出为 0.000。有人可以帮我了解这两种方法之间的实际区别。这是我的程序代码:
import java.util.*;
public class SquareRoot
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int k;
double number;
double number2;
double generator ;
double Difference;
generator = (int)(Math.random() * 20 + 1); // generates a random number between '1' and '20'
////////////////////////Take input from the user/////////////////////////////////////////////////////
System.out.print("Please enter the number that you want to take the square root of: ");
number = console.nextDouble();
//////////////////////////generate the square root using the averaging method///////////////////////
for( k = 1; k <= 10; k++ )
{
generator = ( generator + (number/generator)) / 2;
}
////////////////////////Place the math package value in 'number2' and take the difference of the//////
/////////////////////// averaged value and the true math package value////////////////////////////////
number2 = Math.sqrt(number);
Difference = (number2 - generator);
///////////////////////////////Display the results to the user////////////////////////////////////////
System.out.println("\nNumber SquareRoot MathPackage Difference");
System.out.printf("%-6.3f %-10.3f ", number, generator);
System.out.printf("%-11.3f %-10.3f%n" , number2 , Difference);
}
}
【问题讨论】:
标签: java