快速幂运算 《挑战程序设计竞赛》
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))。
快速幂运算 《挑战程序设计竞赛》相关推荐
- 《挑战程序设计竞赛(第2版)》习题册攻略
本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...
- 挑战程序设计竞赛(第2版)》
<挑战程序设计竞赛(第2版)> 基本信息 作者: (日)秋叶拓哉 岩田阳一 北川宜稔 译者: 巫泽俊 庄俊元 李津羽 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787 ...
- 快速幂算法c语言求a的n次方,快速幂运算模板(求n^k以及前几位或后几位)
计算n^k的结果 步骤: 1.把n由十进制转换为二进制,按二进制来计算(最后结果还是一样的) 2.把n由二进制转换为2^k相加的形式 先举个例子: 求5^22: 接着就可以很好地理解了 O(logn) ...
- 挑战程序设计竞赛(第2版)pdf
下载地址:网盘下载 内容简介 · · · · · · 世界顶级程序设计高手的经验总结 [ACM-ICPC全球总冠军]巫泽俊主译 日本ACM-ICPC参赛者人手一册 本书对程序设计竞赛中的基础算法和经 ...
- 《挑战程序设计竞赛》 读后感(转载)
<挑战程序设计竞赛> 读后感 最近要开始准备面试找工作,算法是准备的重中之重,舍友推荐了<挑战程序设计竞赛>这本书.花了一周的时间大体过了一遍,该书真切地让我理解了" ...
- 挑战程序设计竞赛(第二章习题总结)
文章目录 搜索 Curling 2.0(POJ 3009) Meteor Shower(POJ 3669) Smallest Difference(POJ 2718) Hopscotch(POJ 30 ...
- 《挑战程序设计竞赛》--初级篇习题POJ部分【2.4 - 2.6】
这次是延续上次的<挑战程序设计竞赛>初级篇,总结部分poj上的练习题,主要是2.4 ~ 2.6部分: 导航 2.4 加工并存储的数据结构 优先队列 Sunscreen MooUnivers ...
- ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)
白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...
- 快速幂运算(入门完整版)
快速幂运算 除数学问题之外,也有许多地方用到了幂运算.在此给大家介绍一种能够非常高效的计算幂运算的快速幂运算算法--反复平方法. Carmichael Number 我们把对任意的1<x< ...
- POJ 1150 The Last Non-zero Digit 《挑战程序设计竞赛》
为什么80%的码农都做不了架构师?>>> POJ 1150 The Last Non-zero Digit超大组合数:求超大组合数P(n, m)的最后一个非零位.4.1更加复杂 ...
最新文章
- HTTP Response中的Chunked编码
- ubuntu利用apt-get卸载软件
- JQuery 总结(2) jQuery 效果动画
- 决策树 bagging boosting 的区别
- 【PHP】Sublime下PHP网站开发指南
- Angular Component template函数执行上下文的对象
- 吴恩达《机器学习》学习笔记一——初识机器学习
- Java学习四步曲,助你成长!
- 水解聚丙烯酰胺 php,聚丙烯酰胺水溶液的流变性质
- linux 系统内如何查看当前CPU详细信息
- 用记事本编写一个Servlet项目
- Exchange2003部署与管理体系结构
- 转: Eclipse自动提示功能
- 西南科技大学OJ题 舞伴问题1027
- vs2012 ultimate 密钥
- vnc连接服务器怎么修改配置,VNC配置最详细易懂教程-图文并茂
- Java开发实习(入职经历)
- Latex algorithm Input Output
- Go语言十一大主流微服务框架
- 移动端h5图片下载-前端小白初长成
热门文章
- 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...
- 安装wordpress之激活mod_rewrite
- Tipard Video Converter Ultimate如何旋转视频?
- 第67课 选择排序 改进例67.1 《小学生C++编程入门》
- tablednd保存 php,TableDnD-JavaScript中文网-JavaScript教程资源分享门户
- mysql c 调用存储过程返回值_Mysql:使用返回值调用存储过程
- Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
- Android逆向笔记-Proguard混淆Android代码以及去打印日志信息
- canvas笔记-arcTo的使用及绘制弯月
- 前端笔记-Vue中缺少router-view导致跳转失效