java 带根号的开平方

一般我们都使用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)


  • 4
    点赞
  • 2
    评论
  • 4
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:程序猿惹谁了 设计师:我叫白小胖 返回首页

打赏作者

蓝蓝223

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值