[LeetCode]实现数学计算
2024-10-20 21:10:14
乘方
思路是: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;
}
最新文章
- Quart.NET实施参考
- [原]经典bootstrap模态框使用文章
- About SSDT BI
- java.lang.OutOfMemoryError: Java heap space
- win7 64位安装redis 及Redis Desktop Manager使用
- 设置UISegmentedControl中字体大小
- 循环链表Josephus问题(c,cpp)
- 计算内存容量(measure)
- asp.net 事件模型
- iOS - 排序的队列中插入数值
- 【转】 Python subprocess模块学习总结
- Linux系统盘扩容-物理机非虚拟机
- [原]CentOS 7 chrony 笔记
- Yann Martell《少年 pi 的奇幻漂流》
- mysql插入一条记录时有自增id怎么办
- try/except/else语句
- poj_3071 Football(概率dp)
- genmotion 安装 app 报错 This application is&#39;t compatible with your mobile phone解决办法
- python---Scrapy模块的使用(二)
- BZOJ 3809 Gty的二逼妹子序列(莫队+分块)
热门文章
- Spring Cloud 学习 (三) Feign
- 5.1 Spring5源码--Spring AOP源码分析一
- C#设计模式-组合模式(Composite Pattern)
- 第三十二章、使用splitDockWidget和tabifyDockWidget嵌套布局QDockWidget的PyQt人机对话案例
- 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例
- PyQt(Python+Qt)学习随笔:QStandardItemModel指定行和列创建模型后的数据项初始化的两种方法
- PyQt(Python+Qt)学习随笔:Qt Designer中Action关联menu菜单和toolBar的方法
- 第15.13节 PyQt(Python+Qt)入门学习:Qt Designer的Spacers部件详解
- buu学习记录(下)(做题是不可能做题的)
- 稀疏矩阵三元组表快速转置(C语言实现)