问题:

Implement pow(x, n).

从题目来看这是个有趣的问题。十分简短。然后我用了1分钟写出如下版本:

class Solution {
public:
    double myPow(double x, int n) {

double res = 1;
        for(int i = 0;i<abs(n);i++){
            res *= x ;
        }
        return res;
    }
};

然后,发现没有考虑负数。那我花了20秒改进成这样

class Solution {
public:
    double myPow(double x, int n) {
        double res = 1;
        for(int i = 0;i<abs(n);i++){
            res *= x ;
        }
        if(n<0){
            return 1/res;    
        }
        return res;
    }
};

然后小数来了,我开始思考人生了。。

这个时候就可以用二进制来解决问题了,思路也比较简单。通过位运算和移位来完成计算,只要n移位后还没到1,x就自己乘自己。终于解决了问题。代码如下

class Solution {
public:
    double myPow(double x, int n) {
        double ret = 1;
        if (n < 0){
            n *= -1;
            x = 1 / x;
        }
        while (n > 0){
            if (n & 1) ret *= x;
            x = x * x;
            n >>= 1;
        }
        return ret;
    }
};

第十一周OJ-Q50解题方法相关推荐

  1. c语言 星座运势,第十一周 OJ总结-日期妙算星座

     Copyright (c) 2016, 烟台大学计算机与控制学院 All ringts reserved. 文件名称:OJ总结<4>-日期妙算星座 作 者:王兴振 完成日期:2016 ...

  2. 第十一周oj题目输出星座名称

    问题及代码: /* 作者:夏晓林 时间:2016.11 输入:出生日期 输出:星座名称 */ #include <stdio.h> void constellation(int year, ...

  3. 第十一周OJ(2)判断三角形

    *\ 烟台大学计算机与控制工程学院 作者:汪莹莉 完成日期:2016年11月14日 问题描述: 娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学 会了如何凭借三角形三边判断三角形的形状(设 ...

  4. 第十一周学习总结--助教

    第十一周学习总结 一.   学习内容总结 1.都不难,在天梯上刷过题,看了书有相似的题,上机课就是改错题,真没什么难度. 二.   学习和作业中的问题和解决过程 1.无 三.   预习内容总结 继续往 ...

  5. 《Java程序设计》第十一周学习总结

    20175334 <Java程序设计>第十一周学习总结 教材学习内容总结 第十三章 URL类 一个URL对象通常包含最基本的三部分信息:协议.地址.资源. URL对象调用 InputStr ...

  6. 2017-2018-1 20155204 《信息安全系统设计基础》第十一周学习总结

    2017-2018-1 20155204 <信息安全系统设计基础>第十一周学习总结 教材学习内容总结 9.1物理和虚拟地址 物理地址:计算机系统的主存被组织成一个人由M个连续的字节到校的单 ...

  7. # 学号 2017-2018-20172309 《程序设计与数据结构》第十一周学习总结

    ---恢复内容开始--- 学号 2017-2018-20172309 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 第23章 初识Android操作系统:一个多用户的Linux ...

  8. 20172310 2017-2018-2 《程序设计与数据结构》第十一周学习总结

    20172310 2017-2018-2 <程序设计与数据结构>第十一周学习总结 作业要求 1.教材第23-26章(Java和Android开发学习指南) 代码托管到git@OSC,参考一 ...

  9. 2017-2018-1 20155327 《信息安全系统设计基础》第十一周学习总结

    2017-2018-1 20155327 <信息安全系统设计基础>第十一周学习总结 教材学习内容总结 理解虚拟存储器的概念和作用 虚拟存储器(Virtual Memory),是硬件异常,硬 ...

  10. 201621123080《Java程序设计》第十一周学习总结

    201621123080<Java程序设计>第十一周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 ...

最新文章

  1. 自考18年4月计算机应用基础,2019年自学考试计算机应用基础试题(18)
  2. POS机移动刷卡机自适应网站源码 dedecms织梦模板
  3. 版本管理器subversion的简单配置以及和apache的结合使用
  4. 计算机绘图设备cmy,《计算机图形学》练习测试题库
  5. 登录验证----滑块/拼图碎片/随机num
  6. CommandName 和 CommandArgument的区别
  7. java常用的排序方法
  8. PS怎么压缩图片大小而像素不变
  9. iNFTnews | 元宇宙浪潮下,企业正通过AR和VR技术改善客户体验
  10. 两个for循环写出大小写字母表
  11. 如何在两台服务器之间传输文件
  12. Opencv3基础操作3——图像形态学处理
  13. process on画流程图和思维导图总结
  14. 企业面试遇到的问题02
  15. 很久以前的一篇对初学Oracle建议的文章
  16. 对比面向对象和面向服务
  17. 程序员英语阅读学习笔记
  18. emq Node emq@ not responding to pings.
  19. 佳肴 (Standard IO)
  20. 彩虹代shua网仿小储云的模板 提前备份好数据

热门文章

  1. 高并发核心技术Redis系列(七)--------Jedis操作Redis
  2. ftp服务器怎样批量删除文件,ftp地址不能从快速访问中删除,其他的文件夹可以...
  3. JavaScript:Promise进阶知识
  4. 西北大学本科毕业论文答辩PPT模板
  5. google三大论文之--MapReduce:超大机群上的简单数据处理
  6. 公众号运营情况分析 DAY02(获取公众号文章阅读量、在看和评论内容)
  7. python表白玫瑰花绘制——情人节表白(亲测)
  8. RK3588平台开发系列讲解(文件系统篇)Linux 文件系统简介
  9. 不同平方的电线都能带动哪些家用电器
  10. Android反编译工具的使用-Android Killer