手动实现pow(x,n)的功能--20150927
2015-09-28 21:27
549 查看
//题目描述:手动实现pow(x,n)的功能 //思路:考虑指数为正和为负和为0的情况,考虑溢出,考虑double与0的比较。 bool g_InvalidInput = false;//全局变量判断输入的合法性 double power(double base,int expoent){ g_InvalidInput = false; //底数为0,指数为负时,输入非法 if(equel(base,0)&&exponent<0){ g_InvalidInput = true; return 0.0; } unsigned int absExponent = (unsigned int)(expoent); if(expoent<0){ absExponent = (unsigned int)(-expoent); } double result = PowerWithUnsignedExpoent(base,absExponent); if(expoent<0){ result = 1.0/result; } return result; } double PowerWithUnsignedExpoent(double base,int expoent){ if(expoent==0){ return 1; } if(expoent==1){ return base; } double result = PowerWithUnsignedExpoent(base,expoent>>1); //expoent%2==1 if(expoent&&0x1==1){ result *= base; } return result; } bool equal(double num1,double num2){ if((num1-num2>-0.0000001)&&(num1-num2<0.0000001){ return true; }else{ return false; } }
相关文章推荐
- Lua中的全局变量、非全局变量总结
- js DOM 元素ID就是全局变量
- c语言全局变量和局部变量问题及解决汇总
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 深入uCOS中全局变量的使用详解
- Ruby 中$开头的全局变量、内部变量、隐藏变量介绍
- 全局变量与局部变量在内存中的区别详细解析
- 关于全局变量和局部变量的那些事
- javascript中局部变量和全局变量的区别详解
- javascript 用局部变量来代替全局变量第1/2页
- 探讨JavaScript中声明全局变量三种方式的异同
- 解析在PHP中使用全局变量的几种方法
- 关于PowerDesigner初体验的使用介绍
- JQuery中使用Ajax赋值给全局变量失败异常的解决方法
- 理运用命名空间让js不产生冲突避免全局变量的泛滥
- 解析 ruby 全局变量
- PHP中全局变量global和$GLOBALS[]的区别分析
- php 获取全局变量的代码
- PHP Global定义全局变量使用说明
- php全局变量和类配合使用深刻理解