剑指offer之面试题11数值的整数次方
来源:互联网 发布:矩阵奇异值分解 matlab 编辑:程序博客网 时间:2024/05/16 15:48
问题描述:
实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
实现代码如下:
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include<math.h>double doDoublePower(double doubleNumber,int pow);double doublePow(double doubleNumber,int pow);int main(int argc, char *argv[]){srand( (unsigned)time( NULL ) );int number = rand()%30;double d = 1.0/number;int pow = rand()%10;printf("double number is %lf, pow is %d.\n",d,pow);double result = doublePow(d,pow);printf("this is result :%0.10lf\n",result);return 0;}double doublePow(double doubleNumber,int pow){if(pow==0){return 1.0;}else if(pow == 1 ){return doubleNumber;}bool isPositive = pow>0?true:false;if((doubleNumber-0.0)<1e-10 && !isPositive){printf("this is illegal\n");return 0.0;}if(!isPositive){printf("this is negative\n");pow=-pow;}double result = doDoublePower(doubleNumber,pow);if(!isPositive){result = 1.0/result;}return result;}double doDoublePower(double doubleNumber,int pow){if(pow==0){return 1.0;}else if(pow==1){return doubleNumber;}double doubleTemp= doDoublePower(doubleNumber,pow>>1);if(pow&0x1 == 1){return doubleNumber * doubleTemp*doubleTemp;}return doubleTemp*doubleTemp;}
上面算法的时间复杂度是:O(lgn)。(n表示n次方)
参考资料:
剑指offer
备注:
转载请注明出处:http://blog.csdn.net/wsyw126/article/details/51367401
作者:WSYW126
0 0
- 剑指offer之面试题11:数值的整数次方
- 剑指offer之面试题11数值的整数次方
- 剑指Offer之面试题11:数值的整数次方
- [剑指offer][面试题11]数值的整数次方
- 【剑指offer】面试题11:数值的整数次方
- 剑指offer 面试题11 数值的整数次方
- 剑指Offer:面试题11 数值的整数次方
- 《剑指Offer》面试题11:数值的整数次方
- 【剑指Offer学习】【面试题11 :数值的整数次方】
- 剑指offer-面试题11:数值的整数次方
- 剑指offer----面试题11:数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指Offer----面试题11:数值的整数次方
- 剑指offer-面试题11:数值的整数次方
- 剑指offer面试题11:数值的整数次方
- 剑指offer--面试题11: 数值的整数次方
- 剑指offer-面试题11-数值的整数次方
- 剑指Offer系列-面试题11:数值的整数次方
- GPU memory 结构
- Spark-ML-01-小试spark分析离线商品信息
- APP开发实战7-APP的尺寸标注工作
- Spring实例化Bean的三种方式及Bean的类型(activiti实战)
- uva 361 - Cops and Robbers(凸包)
- 剑指offer之面试题11数值的整数次方
- 15_JSP 过滤器
- js检测输入的是否全部为数字
- COM开发-IDispatch
- Android中的Activity
- GPU线程及调度
- Longest Common Prefix
- 原生封装ajax
- NTP 相关信息整理 & DRDoS