double myPower(double base, int exponent){if(exponent==0)return 1;if(exponent==1)return base;if(exponent==-1)//当为是负数的情况return 1.0/base;double result=1.0;result=myPower(base,exponent>>1);result*=result;if(exponent&1)//绝对值为奇数result*=base;return result;
}

1.使用了递归的思路。即将幂除2,在将结果平方的思路。对于幂为正奇数,右移位产生除即取下整数的结果,结果还要乘以一遍底数

2.对于幂为负奇数,右移也产生取下整数的效果。不同的是结果变小,即如-5>>1==-3,-7>>1==-4。因此,也得乘以一遍底数。

3.不管是正数还是负数,其补码与1相与都能判断其绝对值的奇偶.

4.-1的补码右移始终为-1,因此要添加嵌套终止条件

5.注意改函数对所有的底数指数的正负运算都适用

转载于:https://www.cnblogs.com/engineerLF/p/5393023.html

每天一道算法题(24)——自定义幂函数pow相关推荐

  1. 一道算法题跟大家分享

    无意中看到一道算法题,拿出我的解法与大家分享. 题目:输出1,2,3,4四个数字能组成的互不相同且无重复的三位数并统计满足条件的三位数个数 大家先想想,再看答案吧. View Code 1 /// & ...

  2. 一天一道算法题--5.30---递归

    感谢微信平台:  一天一道算法题 --------每天多一点进步--------- 今天 休假 这题 也很水 能发现 规律就好 明天 再也不能这样了 forgive me ---------- 转载于 ...

  3. 一天一道算法题--6.15--卡特兰数

    感谢微信平台---一天一道算法题---每天多一点进步- problem: 12个高矮不同的人 排成两排 每排必须是从矮到高排列 而且第二行比对应的第一排的人高 问排列方式有多少种? analyse: ...

  4. 每天一道算法题系列十七之电话号码的字母组合

    每天一道算法题系列: 来源:力扣(LeetCode) 本题链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-numb ...

  5. 搜狗2020秋招笔试的一道算法题

    搜狗2020秋招的一道算法题 有A,B,C三种样品,凑齐三个样品各一个就可以领取一个奖品.任意两个样品可兑换另一种样品,如AA可兑换一个B或一个C,AB可兑换一个C.输入ABC,问最多可以领取多少奖品 ...

  6. 每天一道算法题系列十二之整数转罗马数字

    每天一道算法题系列: 来源:力扣(LeetCode) 本题链接:https://leetcode-cn.com/problems/integer-to-roman/ 来源是力扣,大家喜欢可以去力扣中文 ...

  7. 截止目前为止,我遇到的最难的一道算法题:计算相邻两个数的最大差值

    hello,今天给大家带来一道算法题.这道算法题,是我目前为止,见过最难的一道题.那么到底是怎样的一道算法题呢?如下: 题目:给定一个数组, 求如果排序之后, 相邻两数的最大差值. 要求时间复杂度O( ...

  8. 算法题+JVM+自定义View,详细的Android学习指南

    前言 想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~. 学算法真的很痛苦,虽然大数据现在很火,但找到适合自己定位的职业也未尝不是一种合理选择. ...

  9. Homebrew作者面试Google被拒,只因写不出一道算法题

    相信很多人听说过关于Max Howell(Homebrew的作者)的故事: Max Howell在Google面试,但Google拒绝了他,给出的答复是:"虽然我们90%的工程师都用你写的软 ...

最新文章

  1. 成都理工大学计算机报告,[2017年整理]成都理工大学通信工程计算机网络综合课程设计报告.doc...
  2. linux shell之case用法
  3. 云小课 | 一分钟了解AppCube中的应用
  4. 什么是html写出html的文档结构,HTML第二课:认识HTML4和HTML5的文档结构
  5. thinkcmf5调用指定分类的二级_python机器学习API介绍11: 伯努利贝叶斯分类器
  6. 汽车维修企业管理【1】
  7. 《嵌入式-STM32开发指南》第三部分 外设篇 - 第5章 光敏传感器
  8. matlab 图像分割_图像分割之阈值分割(matlab)
  9. 【 PG 入门系列 】PostgreSQL的客户端工具(五)
  10. php匿名聊天室开源,[开源项目]基于WebSocket的匿名聊天室
  11. 单个文件如何修改MD5
  12. 因子分析累计贡献率_数据分析之因子分析
  13. 【A阶段A+2】-vinc- =-vict- 胜,征服,扩展的单词学会了?
  14. 美团商品知识图谱的构建及应用
  15. 帮老婆系列-关于计算Excel表去除指定时间段后的时间差
  16. 图像特效---(Sketch Filter)素描滤镜
  17. android 动画直播,直播动画实现方案一
  18. 会议管理系统怎么用好,这些细节你注意到了吗?
  19. 淘宝详情页分发推荐算法总结:用户即时兴趣强化
  20. 华为云计算IE面试笔记-华为云计算解决方案业务迁移支持哪些迁移?有哪些特点?请描述基本的业务交付流程、业务迁移流程和原则。

热门文章

  1. 电子商务创造的第二次产业机会
  2. C# Winform 启动和停止进程
  3. Crystal Report 加载模板报错 无法在c++ 堆栈中打开由jrc 引擎处理的文档
  4. CRM——插件流程回顾
  5. 解决:无法创建该DNS 服务器的委派
  6. 编译安装Zabbix 2.2 (LNMP环境)
  7. 阿里云centos配置nginx和nodejs
  8. 小代码 细心体会 含3对父子编程
  9. WebBrowserProgramming - Python Wiki
  10. WPF中的容器控件——Grid