2018-3-1

这里我就对数进行说明,并没有对矩阵进行求解。

求x^n,其中n是一个比较大的数

如果用一般的方法的话,我们会直接进行累乘即可,时间复杂度是O(n),但是这个好像并不能满足我们的要求,我们来分析一下:n的二进制表示是这样的,
n=t1*2^k1+t2*2^k2+t3*2^k3…,其中k1,k2,k3…为0,1,2…,t1,t2…只能是0或者1,附上代码:

#include<iostream>
using namespace std;int x,n;int main(){while (cin>>x>>n){int r=1;while (n){if (n&1) r*=x;x*=x;n>>=1;}cout<<r<<endl;}return 0;
}

我们依次判断n的二进制表示的每一位的值,如果是0的话,r不做任何操作,反之,如果是1的话,那么当前的值要乘上x,有人可能会问,这里的x是个什么东西,x每一次都要乘上它本身。比如说n=10110,那么从左到右依次为:n=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0,那么第i次循环前,x就为x^(2^(i-1)),那么当第i位为1时,就表示r的值要乘x^(2^(i-1))。

快速幂运算 《挑战程序设计竞赛》相关推荐

  1. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  2. 挑战程序设计竞赛(第2版)》

    <挑战程序设计竞赛(第2版)> 基本信息 作者: (日)秋叶拓哉 岩田阳一 北川宜稔 译者: 巫泽俊 庄俊元 李津羽 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787 ...

  3. 快速幂算法c语言求a的n次方,快速幂运算模板(求n^k以及前几位或后几位)

    计算n^k的结果 步骤: 1.把n由十进制转换为二进制,按二进制来计算(最后结果还是一样的) 2.把n由二进制转换为2^k相加的形式 先举个例子: 求5^22: 接着就可以很好地理解了 O(logn) ...

  4. 挑战程序设计竞赛(第2版)pdf

    下载地址:网盘下载 内容简介  · · · · · · 世界顶级程序设计高手的经验总结 [ACM-ICPC全球总冠军]巫泽俊主译 日本ACM-ICPC参赛者人手一册 本书对程序设计竞赛中的基础算法和经 ...

  5. 《挑战程序设计竞赛》 读后感(转载)

    <挑战程序设计竞赛> 读后感 最近要开始准备面试找工作,算法是准备的重中之重,舍友推荐了<挑战程序设计竞赛>这本书.花了一周的时间大体过了一遍,该书真切地让我理解了" ...

  6. 挑战程序设计竞赛(第二章习题总结)

    文章目录 搜索 Curling 2.0(POJ 3009) Meteor Shower(POJ 3669) Smallest Difference(POJ 2718) Hopscotch(POJ 30 ...

  7. 《挑战程序设计竞赛》--初级篇习题POJ部分【2.4 - 2.6】

    这次是延续上次的<挑战程序设计竞赛>初级篇,总结部分poj上的练习题,主要是2.4 ~ 2.6部分: 导航 2.4 加工并存储的数据结构 优先队列 Sunscreen MooUnivers ...

  8. ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)

    白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...

  9. 快速幂运算(入门完整版)

    快速幂运算 除数学问题之外,也有许多地方用到了幂运算.在此给大家介绍一种能够非常高效的计算幂运算的快速幂运算算法--反复平方法. Carmichael Number 我们把对任意的1<x< ...

  10. POJ 1150 The Last Non-zero Digit 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 1150 The Last Non-zero Digit超大组合数:求超大组合数P(n, m)的最后一个非零位.4.1更加复杂 ...

最新文章

  1. HTTP Response中的Chunked编码
  2. ubuntu利用apt-get卸载软件
  3. JQuery 总结(2) jQuery 效果动画
  4. 决策树 bagging boosting 的区别
  5. 【PHP】Sublime下PHP网站开发指南
  6. Angular Component template函数执行上下文的对象
  7. 吴恩达《机器学习》学习笔记一——初识机器学习
  8. Java学习四步曲,助你成长!
  9. 水解聚丙烯酰胺 php,聚丙烯酰胺水溶液的流变性质
  10. linux 系统内如何查看当前CPU详细信息
  11. 用记事本编写一个Servlet项目
  12. Exchange2003部署与管理体系结构
  13. 转: Eclipse自动提示功能
  14. 西南科技大学OJ题 舞伴问题1027
  15. vs2012 ultimate 密钥
  16. vnc连接服务器怎么修改配置,VNC配置最详细易懂教程-图文并茂
  17. Java开发实习(入职经历)
  18. Latex algorithm Input Output
  19. Go语言十一大主流微服务框架
  20. 移动端h5图片下载-前端小白初长成

热门文章

  1. 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...
  2. 安装wordpress之激活mod_rewrite
  3. Tipard Video Converter Ultimate如何旋转视频?
  4. 第67课 选择排序 改进例67.1 《小学生C++编程入门》
  5. tablednd保存 php,TableDnD-JavaScript中文网-JavaScript教程资源分享门户
  6. mysql c 调用存储过程返回值_Mysql:使用返回值调用存储过程
  7. Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
  8. Android逆向笔记-Proguard混淆Android代码以及去打印日志信息
  9. canvas笔记-arcTo的使用及绘制弯月
  10. 前端笔记-Vue中缺少router-view导致跳转失效