调用格式如下:
Math.sqrt(2.0)//对2开平方
Math.pow(9.0, 1.0/3.0)//对9开三次方,开其他次方依次类推
sqrt函数原型:
public static double sqrt(double a)
作用是返回正确舍入的double值的正平方根。
参数a的各种取值得到的结果:
1、如果参数是 NaN 或小于零,那么结果是 NaN。
2、如果参数是正无穷大,那么结果就是正无穷大。
3、如果参数是正零或负零,那么结果与参数相同。
否则,结果是最接近该参数值的真实数学平方根的 double 值。
pow函数原型
public static double pow(double a, double b)
作用是返回a的b次幂,详情请参考java api。
使用java.lang.Math类的sqrt(double)方法。 方法详解: public static double sqrt(double a) 返回正确舍入的 double 值的正平方根。
Math是在java.lang这个包中的所以可以直接在程序中用这个Math类直接在程序中这样就可以了:
double n
n=Math.sqrt(9)//比如9是要平方的数
示例见下图:
结果是:
扩展资料:
平方根计算:
1、功 能: 一个非负实数的平方根
2、函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double)
3、说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。
参考资料:百度百科-平方根计算
这是我应聘时写的算法代码,运行成功://这是用java编写的一个求2的平方根的程序,精确度可通过修改weishu参数来改变
public class app
{ //用二分法求2的平方根
public static void main(String args[])
{
int a[],b[],s[],d[],c[],ss[]
int i,j,k
a=new int[1000]
b=new int[1000]
s=new int[1000]
d=new int[1000]
c=new int[1000]
ss=new int[1000]
boolean jingque
jingque=true
a[0]=b[0]=2
a[2]=b[2]=1
a[1]=4
b[1]=5
int weishu=200//定义循环次数
for(i=0i<1000i++)
s[i]=0
for(k=0k<weishuk++)
{
hanshucheng.cheng(b,b,s)
j=s[0]
while (s[j]>=2)
{
hanshuadd.add(a,b,c)
hanshuchu.chu(d,c)
hanshucopy.copy(ss,b)
hanshucopy.copy(b,d)
hanshucheng.cheng(b,b,s)
j=s[0]
// for(i=0i<=s[0]i++)
//System.out.println("s["+i+"]="+s[i])
}
hanshucopy.copy(a,b)
hanshucopy.copy(b,ss)
}
for(i=a[0]i>=1i--)
System.out.print(a[i])
System.out.print("左边计算到"+a[0]+"位\n")
for(i=b[0]i>=1i--)
System.out.print(b[i])
System.out.print("右边计算到"+b[0]+"位\n")
for(i=a[0],j=b[0]jingque==truei--,j--)
if(a[i]==b[j])
System.out.print(a[i])
else
jingque=false
System.out.print("精确到"+(a[0]-i-1)+"位\n")
}
}
class hanshucheng
{
public static void cheng( int a[],int b[],int s[])//定义两数相乘的函数
{
int flag=0,flag1=0
int number=b[0]
int c[]=new int[1000]
int i,j,k,u
for(int i1=0i1<1000i1++)
s[i1]=0
for(i=1i<=numberi++)
{
for(int i1=0i1<1000i1++)
c[i1]=0
for(j=i,k=1j<number+ij++,k++)
{
c[j]=(a[k]*b[i]+flag)%10
flag=(a[k]*b[i]+flag)/10
}
if (flag!=0)
{
c[j]=flag
flag=0
j=j+1
}
c[0]=j-1
//for(k=1k<=c[0]k++)
//System.out.println("c="+c[k])
for(k=1k<=c[0]k++)
{ u=s[k]
s[k]=(u+c[k]+flag1)%10
flag1=(u+c[k]+flag1)/10
}
if(flag1!=0)
{
s[k]=flag1
k=k+1
flag1=0
}
s[0]=k-1
// for(k=0k<=s[0]k++)
//System.out.println(s[k])
}
}
}
class hanshuadd
{
public static void add(int a[],int b[],int c[])//定义两数相加的函数
{
int flag=0int i,j,k
int a1[]=new int[1000]
for(i=1i<=b[0]i++)
a1[i]=0
for(j=b[0]-a[0]+1,k=1j<=b[0]j++,k++)
a1[j]=a[k]
//for(k=0k<=jk++)
//System.out.println("a1="+a1[k])
for(i=1i<=b[0]i++)
{
c[i]=(a1[i]+b[i]+flag)%10
flag=(a1[i]+b[i]+flag)/10
}
if(flag!=0)
{
c[i]=flag
i=i+1
flag=0
}
c[0]=i-1
}
}
class hanshuchu
{
public static void chu(int d[],int a[])//定义任一数除以2的函数
{
int flag=0,i
for(i=a[0]i>=1i--)
{
d[i+1]=(flag*10+a[i])/2
flag=(flag*10+a[i])%2
}
if(flag!=0)
d[1]=5
if(d[1]==0)
for(i=1i<=a[0]+1i++)
d[i]=d[i+1]
d[i]=0
d[0]=a[0]+1
}
}
class hanshucopy
{
public static void copy(int a[],int b[])//定义
{
int i
for(i=0i<=b[0]i++)
a[i]=b[i]
while (i<1000)
a[i++]=0
}
}
http://hi.baidu.com/51gamer/blog/item/11ddb1823a4d9da50df4d288.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)