一般我们都使用Math.sqrt()来计算一个数n的平方根,但是结果是一个小数。在做数学题的时候我们是要保留根号的。这里提供带根号的开平方方法
//开平方,数组第一个放平方根前面的系数,第二个放根号里面无法开方的数
public static int[] mySqrt(int n)
{
int ints[]=new int[2];
for(int i=(int)Math.sqrt(n);i>=2;i--)
{
if(n%(i*i)==0)
{
ints[0]=i;
n=n/(i*i);
break;
}
}
if(n>1)
ints[1]=n;
return ints;
}
测试方法:
package Ctojava;
import java.util.Scanner;
public class Sqrt
{
public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);
int n=0;
n=scanner.nextInt();
System.out.print("sqrt("+n+")=");
int strs[]=mySqrt(n);
if(strs[0]!=0)
System.out.print(strs[0]);
if(strs[1]!=0)
System.out.print("sqrt("+strs[1]+")");
}
//开平方,数组第一个放平方根前面的系数,第二个放根号里面无法开方的数
public static int[] mySqrt(int n)
{
int ints[]=new int[2];
for(int i=(int)Math.sqrt(n);i>=2;i--)
{
if(n%(i*i)==0)
{
ints[0]=i;
n=n/(i*i);
break;
}
}
if(n>1)
ints[1]=n;
return ints;
}
}
运行测试1:
16
sqrt(16)=4
运行测试2:
18
sqrt(18)=3sqrt(2)