Leetcode Pow(x, n) 解题报告
来源:互联网 发布:海岛奇兵火坦升级数据 编辑:程序博客网 时间:2024/05/11 22:36
http://oj.leetcode.com/problems/powx-n/
求出x的n次方。x是double类型,n是整数类型。
分析:这道题有几个知识点:
1,n分别为负数,0,正数的情况。n为负数的话,算出结果之后要被1除,同时还要考虑这时候x不能为0。
n为0的时候返回值为1,但0的0次方是无意义的,应该抛出异常。
2,TLE如果直接计算的话,数据一大就超时,考虑计算技巧。
pow(x,n) = pow(x,n/2)*pow(x,n/2) n%2==0
pow(x,n) = pow(x,n/2)*pow(x,n/2)*x n%2==1
AC代码:
求出x的n次方。x是double类型,n是整数类型。
分析:这道题有几个知识点:
1,n分别为负数,0,正数的情况。n为负数的话,算出结果之后要被1除,同时还要考虑这时候x不能为0。
n为0的时候返回值为1,但0的0次方是无意义的,应该抛出异常。
2,TLE如果直接计算的话,数据一大就超时,考虑计算技巧。
pow(x,n) = pow(x,n/2)*pow(x,n/2) n%2==0
pow(x,n) = pow(x,n/2)*pow(x,n/2)*x n%2==1
AC代码:
public class Solution { double pow_recursion(double x, int n) { if (n==0) { return 1.0; } double tmp = pow_recursion(x,n/2); if (n%2==0) { return tmp*tmp; } else { return tmp*tmp*x; } } public double pow(double x, int n) { if(n==0) { return 1; } if(n<0) { return 1.0/pow_recursion(x,-n); } else { return pow_recursion(x,n); } }}
0 0
- Leetcode Pow(x, n) 解题报告
- LeetCode-Pow(x, n)-解题报告
- [LeetCode] Pow(x, n) 解题报告
- [leetcode] 50. Pow(x, n) 解题报告
- [Leetcode] 50. Pow(x, n) 解题报告
- [LeetCode]pow(double x,int n)解题报告
- Leetcode #50. Pow(x, n) 幂实现 解题报告
- [leetcode]50. Pow(x, n)@Java解题报告
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- [Leetcode] Pow(x,n)
- 【leetcode】Pow(x, n)
- [LeetCode]Pow(x, n)
- [leetcode]Pow(x, n)
- hdoj-1038 数学题
- Android 学习教程一 安装eclipse android
- 基于C#语言的扫雷小游戏
- 腾讯应用开发3006 : name lookup timed out 错误
- 【Lua】ElJudge 002 Set Intersection
- Leetcode Pow(x, n) 解题报告
- xcode的C学习笔记
- PHP高效获取远程图片尺寸和大小
- T-SQL基础教程:集合理论
- Leetcode: Roman to Integer
- 手机浏览器无法获取COOKIE的原因
- codeforces Coins
- 好hive的5个提示
- 一个简单的jQuery插件开发实例