[leetcode]50. Pow(x, n)@Java解题报告

来源:互联网 发布:js 直接写 和 onload 编辑:程序博客网 时间:2024/06/05 08:48

https://leetcode.com/problems/powx-n/description/


Implement pow(xn).

比较简单的题,分而治之思想

package go.jacob.day730;import org.junit.Test;public class Demo3 {@Testpublic void testName() throws Exception {System.out.println(myPow_byme(34.00515, -3));}public double myPow(double x, int n) {if (x == 0)return 0;if (n < 0)return 1 / power(x, -n);elsereturn power(x, n);}private double power(double x, int n) {if (n == 0)return 1;double half = power(x, n / 2);if (n % 2 == 0)return half * half;elsereturn half * half * x;}/* * 我的解法:287/300 passed .超时 */public double myPow_byme(double x, int n) {if (x == 0)return 0;if (n == 0)return 1;boolean flag = false;if (n < 0)flag = true;double res = solve_1(x, Math.abs(n));return flag ? 1 / res : res;}private double solve_1(double x, int n) {if (n == 0)return 1;double product = x;int index = 1;while (index + index <= n) {product *= product;index += index;}return product * solve_1(x, n - index);}}


原创粉丝点击