Pow(x,n)
来源:互联网 发布:数据库开发工程师招聘 编辑:程序博客网 时间:2024/06/11 11:30
Implement pow(x, n).
主要问题是
1) isEqual 的时候写错了,>正的,<负的
2) 递归的写法,没写对:
if(exponent == 0) return 1; if(exponent == 1) return base;没写返回;!!!
3) unsigned int !! 这个的范围是: 2^32-1
如果是有符号的int,这个数的范围是2^31-1 (第一位符号位,后面31个1的值为=2^31-1)
所以unsigned int的值要比signed int的值范围大一倍!
0111 = 2^3 - 1
class Solution {bool g_InvalidInput = false;public: bool isEqual(double x, double y) { if((x-y<0.0000001) && (x-y>-0.0000001)) { return true; } else { return false; } }public: double powerWithUnsignedExp(double base, unsigned int exponent) { if(exponent == 0) return 1; if(exponent == 1) return base; double result = powerWithUnsignedExp(base, exponent >> 1); result *=result; if(exponent % 2 == 1) { result = result * base; } return result; } public: double pow(double x, int n) { if((isEqual(x, 0.0) == true) && (n<0)) { g_InvalidInput = true; return 0.0; } if(n == 0) { return 1; } if(n == 1) { return x; } unsigned int unsign_n = (unsigned int) n; if(n < 0) { unsign_n = (unsigned int)(-n); } double result = powerWithUnsignedExp(x, unsign_n); if(n < 0) { result = 1.0/result; } return result; }};
0 0
- Pow(x, n) / Super Pow
- 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)
- Pow(x, n)
- 【leetcode】Pow(x, n)
- Pow(x, n)
- 求 pow(x, n)
- [LeetCode]Pow(x, n)
- Pow(x,n)
- Pow(x, n)
- Pow(x, n)
- [leetcode]Pow(x, n)
- LeetCode-Pow(x, n)
- POJ 2528 Mayor's posters(线段树+离散化)
- HelloWorld
- C语言位运算详解
- AngularJs第二章
- 设计模式之装饰模式
- Pow(x,n)
- poj 2001 Shortest Prefixes(Trie)
- zoj3348 网络流
- Python下读取转换unicode的json格式
- windows安装SNMP
- 常用 RGB 颜色对照表
- 【NOI2012】随机数生成器
- javascript事件冒泡
- mysql复习秘籍