基于visual Studio2013解决面试题之0710求方优化
来源:互联网 发布:js手机重力感应 编辑:程序博客网 时间:2024/06/11 04:17
题目
解决代码及点评
/* 假设我们求 2^32,指数是 32,那么我们需要进行 32 次循环的乘法。但是我们在求出 2^16 以后,只需要在它的基础上再平方一次就可以求出结果。同理可以继续分解 2^16。也就是 a^n=a^(n/2)*a^(n/2),(n 为偶数);或者 a^n=a^((n-1)/2)*a^((n-1)/2)*a,(n 为奇数)。这样就将 问题的规模大大缩小,从原来的时间复杂度 O(n)降到现在的时间复杂度 O(logn)。可以用递 归实现这个思路.*/#include <iostream>using namespace std;/*优化的Power函数*/double MyPower(double base, unsigned int absExp){ if (absExp == 0) { return 1; } if (absExp == 1) { return base; } double dblResult = 1.0 * base;int i;// 对2的n次方部分快速进行 for (i = 2; i <= absExp; i*=2) { dblResult *= dblResult; }// 剩余的部分再一个个乘法for (int j = 0; j < absExp - i/2; j++){dblResult *= base;} return dblResult;}int main(){ cout<<MyPower(2,7)<<endl; system("pause"); return 0;}
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6704519
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果
0 0
- 基于visual Studio2013解决面试题之0710求方优化
- 基于visual Studio2013解决面试题之0709求方
- 基于visual Studio2013解决面试题之1309求子集
- 基于visual Studio2013解决面试题之0201二叉树转链表
- 基于visual Studio2013解决面试题之0203栈实现
- 基于visual Studio2013解决面试题之0205查找路径
- 基于visual Studio2013解决面试题之0207单词翻转
- 基于visual Studio2013解决面试题之0202上下排
- 基于visual Studio2013解决面试题之0301累加
- 基于visual Studio2013解决面试题之0303数组求和
- 基于visual Studio2013解决面试题之0308Fibonacci数列
- 基于visual Studio2013解决面试题之0403串联字符串
- 基于visual Studio2013解决面试题之0407数组差
- 基于visual Studio2013解决面试题之0501上台阶
- 基于visual Studio2013解决面试题之0504单链表逆序
- 基于visual Studio2013解决面试题之0602全排列
- 基于visual Studio2013解决面试题之0603调整数组
- 基于visual Studio2013解决面试题之0702输出数字
- 一些编程的小技巧
- android EditText控制光标的位置
- 13年收益不错的外汇EA-Volatility Master v1
- 区间估计 抽样框 百分位数 校正值 对照组 完全随机设计 全面调查 因变量
- html5 自定义播放器
- 基于visual Studio2013解决面试题之0710求方优化
- TL431中文资料特性及应用
- 三极管简介
- PCB设计中降低噪声的技术分析
- NPN和PNP三极管的区别。另附全系列…
- 常用电子元件扫盲篇
- 选用三极管(主要看的参数)
- 工作笔记之总结PCB 布局降低噪声的…
- 灌电流和拉电流的概念及记忆方法