算法分析:很显然用递归。但是直接用递归会造成栈溢出,时间复杂度是o(n)。所以要用分治思想,时间复杂度是o(logN)。

public class Power {
//栈溢出,时间复杂度是o(n)
public double myPow(double x, int n)
{
if(n < 0)
{
return 1/myPow(x, -n);
}
else if(n == 0)
{
return 1;
}
else
{
return x*myPow(x, n - 1);
}
}
//分治思想,时间复杂度是o(logN)
public double myPow2(double x, int n)
{
if(n < 0)
{
return 1/power(x, -n);
}
else
{
return power(x, n);
}
}
public double power(double x, int n)
{
if(n == 0)
{
return 1;
} double temp = power(x, n/2);
if(n%2 == 0)
{
return temp*temp;
}
else
{
return x*temp*temp;
}
}
}

最新文章

  1. ResponsibleChain(责任链模式)
  2. C++find函数
  3. bzoj 1821: [JSOI2010]Group 部落划分 Group
  4. POJ 3299 Humidex 难度:0
  5. UIBlurEffect实现模糊效果
  6. Genymotion 模拟器 VirtualBox
  7. Rationnal Rose2003安装并破解
  8. Angularjs循环二维数组
  9. PHP+ajaxForm异步带进度条上传文件实例
  10. Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
  11. Android Studio 2.2 新功能详解
  12. UNIX网络编程——TCP/IP简介
  13. ROS_Kinetic_01 在ubuntu 16.04安装ROS Kinetic 2017.01更新
  14. 为什么我的会话状态在ASP.NET Core中不工作了?
  15. Linux下printf、fprintf、sprintf的区别
  16. Linux下一台服务器Redis主从复制(master-slave)配置
  17. SqlServer主键
  18. SIEVE 线性筛
  19. 学习Python 新去处:Python 官方中文文档
  20. day19常用模块2

热门文章

  1. jQuery-实现图片的放大镜显示效果
  2. string 转 java对象、转map的方式
  3. JavaScript-烂笔头
  4. CodeForces 156A Message(暴力)
  5. c#学习笔记之使用 TableLayoutPanel 控件设置窗体布局
  6. telnet --- no route to host solution &quot;iptables -F &quot; in the target machine
  7. DES加密原理
  8. scrapy item
  9. php smarty模板引擎
  10. windows下的Mysql安装与基本使用(msi)