乘方

思路是:pow(x,n) = pow(x,n/2)*pow(x,n-n/2)

递归实现

public double myPow(double x, int n) {
if (n==0) return 1.0;
else if (n>0)
{
double half = (double) myPow(x,n/2);
if (n%2==0) return half*half;
else return half*half*x;
}
else {
if (n==Integer.MIN_VALUE)
{
double half = myPow(x,n/2);
return (half*half);
}
n=-n;
double half = myPow(x,n/2);
if (n%2==0) return 1.0/(half*half);
else return 1.0/(half*half*x);
}
}

开方

二分法或者牛顿法

public int mySqrt(int x) {
/*
二分法一个一个寻找答案
*/
if (x==0) return 0;
long sta = 1;
long end = x/2+1;
while (sta<end)
{
long mid = (sta+end)/2;
long cur = mid*mid;
if (cur==x) return (int)mid;
if (cur>x) end = mid-1;
else sta = mid+1;
}
return (int)sta;
}

最新文章

  1. Quart.NET实施参考
  2. [原]经典bootstrap模态框使用文章
  3. About SSDT BI
  4. java.lang.OutOfMemoryError: Java heap space
  5. win7 64位安装redis 及Redis Desktop Manager使用
  6. 设置UISegmentedControl中字体大小
  7. 循环链表Josephus问题(c,cpp)
  8. 计算内存容量(measure)
  9. asp.net 事件模型
  10. iOS - 排序的队列中插入数值
  11. 【转】 Python subprocess模块学习总结
  12. Linux系统盘扩容-物理机非虚拟机
  13. [原]CentOS 7 chrony 笔记
  14. Yann Martell《少年 pi 的奇幻漂流》
  15. mysql插入一条记录时有自增id怎么办
  16. try/except/else语句
  17. poj_3071 Football(概率dp)
  18. genmotion 安装 app 报错 This application is&#39;t compatible with your mobile phone解决办法
  19. python---Scrapy模块的使用(二)
  20. BZOJ 3809 Gty的二逼妹子序列(莫队+分块)

热门文章

  1. Spring Cloud 学习 (三) Feign
  2. 5.1 Spring5源码--Spring AOP源码分析一
  3. C#设计模式-组合模式(Composite Pattern)
  4. 第三十二章、使用splitDockWidget和tabifyDockWidget嵌套布局QDockWidget的PyQt人机对话案例
  5. 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例
  6. PyQt(Python+Qt)学习随笔:QStandardItemModel指定行和列创建模型后的数据项初始化的两种方法
  7. PyQt(Python+Qt)学习随笔:Qt Designer中Action关联menu菜单和toolBar的方法
  8. 第15.13节 PyQt(Python+Qt)入门学习:Qt Designer的Spacers部件详解
  9. buu学习记录(下)(做题是不可能做题的)
  10. 稀疏矩阵三元组表快速转置(C语言实现)