Java 编程:如何在不使用 sqrt 函数的情况下找到数字的平方根

在 Java 中,我们有一个 Math.sqrt 函数,可以返回给定数字的平方根。在此程序中,我们将不使用该 sqrt 函数来查找平方根。如您所见,我们使用 do while 循环来计算它。

package RemainingSimplePrograms;

import java.util.Scanner;

public class SqrRootOfNum1 {
	
	private static Scanner sc;
	
	public static void main(String[] args) {
		
		sc = new Scanner(System.in);
		
		System.out.print("Please Enter Any Number to find Square Root = ");
		double num = sc.nextDouble();
		
		double temp, squareroot;
		
		squareroot = num / 2;
		
		do {
			temp = squareroot;
			squareroot = (temp + (num / temp))/2;
		} while((temp - squareroot) != 0);
		
		System.out.println("\nThe Square Root of a Number without sqrt = " + squareroot);
	}
}
Java Program to find Square Root of a Number without sqrt

在此示例中,我们正在将每个成员的平方与给定数字进行比较。如果小于给定数字,则增加该值。

package RemainingSimplePrograms;

import java.util.Scanner;

public class SqrRootOfNum2 {
	private static Scanner sc;
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		
		System.out.print("Please Enter Any Number = ");
		int num = sc.nextInt();
		
		int squareroot = squareRootWithoutsqrt(num);
		
		System.out.println("\nThe Square Root of a Number without sqrt = " + squareroot);
	}
	
	public static int squareRootWithoutsqrt(int num) {
		if(num < 2) {
			return num;
		}
		int mid, start = 1, end = num;
		while(start <= end) {
			mid = (start + end) /2;
			
			if(mid * mid == num) {
				return mid;
			} else if(mid * mid > num) {
				end = mid - 1;
			} else {
				start = mid + 1;
			}
		}
		return end;
	}
}
Please Enter Any Number = 986

The Square Root of a Number without sqrt = 31

Java 编程:如何在不使用 sqrt 函数的情况下找到数字的平方根

在此示例中,我们使用二分查找来查找平方根。

package RemainingSimplePrograms;

import java.util.Scanner;

public class SqrRootOfNum3 {
	private static Scanner sc;
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		
		System.out.print("Please Enter Any Number = ");
		int num = sc.nextInt();
		
		int squareroot = squareRootWithoutsqrt(num);
		
		System.out.println("\nThe Square Root of a Number without sqrt = " + squareroot);
	}
	
	public static int squareRootWithoutsqrt(int num) {
		if(num < 2) {
			return num;
		}
		
		int sqrtVal = 1;
		while(sqrtVal * sqrtVal <= num) {
			sqrtVal++;
		}
		return sqrtVal - 1;
	}
}
Please Enter Any Number = 97

The Square Root of a Number without sqrt = 9