java math.pow()函数源代码

编程入门 行业动态 更新时间:2024-10-28 03:26:55

java math.pow()函数<a href=https://www.elefans.com/category/jswz/34/1769335.html style=源代码"/>

java math.pow()函数源代码

pow函数在java.lang.Math类中,是求次方的函数,定义为:

public static double pow(double a, double b);

即求a的b次方,例如:

public static void main(String[] args) {

double a = 2.0D;

double b = 4.0D;

double r = Math.pow(a, b);

System.out.println(r);

//输出为16.0

}

查看源码,发现其实现调用了StrictMath类的pow函数,并且,Math中很多函数都调是直接调用了StrictMath类中的函数,而在StrictMath类中方法用native修饰,表明调用的并非java代码,而是其它的。经了解,这里是C代码来实现这些方法的,而这些源码在jdk中并没有公布。

遂思考如何用java来实现呢?最先想到用循环和递归两种方式可实现。如下:

为简化逻辑实现,只考虑了自然数(0和正整数)次幂。

1、循环实现:

static int mypow(int x, inty)

{if(y < 0){return 0;

}if(y == 0){return 1;

}if(y == 1){returnx;

}int result =x;for (int i = 1; i < y; i++) {

result*=x;

}returnresult;

}

2、递归实现:

static int mypow(int x, inty)

{if(y < 0){return 0;

}if(y == 0){return 1;

}if(y == 1){returnx;

}int result = 0;int tmp = mypow(x, y/2);if(y % 2 != 0) //奇数

{

result= x * tmp *tmp;

}else{

result= tmp *tmp;

}returnresult;

}

注:本文所述内容基于JDK1.7。

水平有限,上述观点难免有误,仅供参考。欢迎牛们拍砖!

更多推荐

java math.pow()函数源代码

本文发布于:2024-03-09 13:28:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725093.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:源代码   函数   java   math   pow

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!