求一个数的x次方
来源:互联网 发布:知合控股 封锐 编辑:程序博客网 时间:2024/04/28 21:01
思路:分几种情况
1、不合法的输入,基数等于0并且指数小于0。
2、任何一个数的0次方都等于1。
3、指数是负数,可以先对指数求绝对值,然后计算出次方的结果之后再取倒数。
4、递归求次方效率更高,时间复杂度为O(lgn)。
根据公式:
#include<iostream>using namespace std;//判断浮点数是否等于0bool equal(double d1, double d2){ if ((d1 - d2 < 0.000000001) && (d1 - d2 > -0.00000001)) return true; else return false;}double Power(double base, int expo){ if (expo == 1) return base; double result = Power(base, expo >> 1); //用右移一位来代替除以2 result *= result; if ((expo & 1) == 1) //用按位与运算判断expo是奇数还是偶数,代替%运算 result *= base; return result;}double MyPower(double base, int expo){ //非法输入 if (equal(base, 0.0) && expo < 0) return 0.0; if (expo == 0) //任何数的0次方都为1 return 1.0; int absExpo = expo; if (expo < 0) //指数为负数 absExpo = -expo; double result = Power(base, absExpo); if (expo < 0) //2^(-3) = 1/(2^3) result = 1.0 / result; return result;}int main(){ double base = -2; //基数 int expo = -3; //指数 double ret = MyPower(base, expo); cout << base << "^" << expo << " = " << ret << endl; getchar(); return 0;}
0 0
- 求一个数的x次方
- Pow(x, n) 求一个数的n次方
- 求一个数的次方
- 求一个数的n次方 power
- 求一个数的N次方
- 求一个数的整数次方
- 求一个数的n次方
- C++ <递归求一个数的N次方(仅限一个数的正数次方)>
- 编写一个求x的n次方的函数
- zjut 1740 Find x 从此题推广到求一个数的N次方的小数精度问题
- 求一个数的k次方的前三位。
- 求x的y次方
- 求X的N次方
- 求x的n次方
- 求x的K次方
- 判断一个数(x)是否是2的n次方
- 求一个数是否是另一个数的n次方幂、一个数是否是2的n次方幂
- 求一个整数的次方
- 利用贝塞尔曲线做圆角
- 笔试题55. LeetCode OJ (42)
- 负载均衡会话保持(session persistence, session stickiness, session affinity)
- ForkJoin并发框架—样例及实现分析
- HDU 1698 Just a Hook(区间修改,求累加和)
- 求一个数的x次方
- VirtualBox安装Mac OS 10.11——虚拟机安装黑苹果
- CSS Hack 学习笔记
- java 余数
- HDU - 1754 I Hate It(线段树,点修改)
- ssm框架学习---mybatis和spring的整合
- Nginx的模块开发指南
- void void* 空指针类型
- CodeIgniter是一套给PHP网站开发者使用的应用程序开发框架和工具包