pow(double a,int b)
来源:互联网 发布:java private修饰类 编辑:程序博客网 时间:2024/06/05 14:44
实现pow(double a, int b) 最简单直接的方法就是用一个循环使得result *= a 做b次,但是,这样的方法不是最优的,比如我们求2^100, 我们只需要得到2^50就可以了,因为2^100 = 2^50 * 2^50。而要求2^50,只需要得到2^25就可以了,所以,按照这样一个思路,要求pow(double a,int b),我们可以按照如下方法做:
public class Solution { public double pow(double x, int m) { int n = Math.abs(m); if (n == 0) return 1; if (n == 1) return m > 0 ? x : 1/x; double result = pow(x, n/2); if (n % 2 == 0) { return m > 0 ? result * result : 1/ (result * result); } else { return m > 0 ? result * result * x : 1/(result * result * x); } }}
转载请注明出处:http://blog.csdn.net/beiyeqingteng
- pow(double a,int b)
- pow(double a,int b) [No. 41]
- Pow(double x, int n)
- pow(double x,int n)
- 实现pow(double x, int n)
- struct s1 { int i: 8; int j: 4; int a: 3; double b; };
- double d=cv::norm<int,3,1>(cv::Vec3i(2,3,4));double calc_norm(int a,int b,int c)
- [LeetCode]pow(double x,int n)解题报告
- 求解次方的次方。pow(a,pow(b,c))%p
- int Random (int a, int b)
- int*a, int& b, int* &c, int& *d
- gcd(int a, int b) //求最大公约数
- int[] a与int b[] 一样吗
- return *(int*)b-*(int*)a意思
- double+pow函数p2109
- java中将double转型为int。java中的幕运算方法Math.pow()。
- #include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); }
- mydiv(int a,int b,int c[10])
- 360综合搜索引擎接口文档
- 业务基本流程
- LInux 环境变量设置
- 基元线程同步——内核模式构造(WaitHandle,EventWaitHandle,AutoResetEvent,ManualResetEvent,Semaphore,Mutex)
- C语言经典100题-程序21
- pow(double a,int b)
- mac 如何进入/usr/sbin目录
- iPhone3GS,iPhone4完美降级
- [原创] RDLC 报表系列(一) 创建一个报表
- .net插件式架构系统
- MFC中的菜单处理
- setLayout的用法
- web.xml常用元素
- 巧用析构函数解锁