Problem

Calculate the a^n % b where a, b and n are all 32bit integers.

Example

For 2^31 % 3 = 2

For 100^1000 % 1000 = 0

Challenge

O(logN)

Note

应用求余公式: (a * b) % p = (a % p * b % p) % p
使用分治法,不断分解a^n为a^(n/2),最终的子问题就是求解a^1或者a^0的余数。
唯一要注意的就是,若n为奇数,要将余数和a再代入求余公式,运算一次。

Solution

class Solution {public int fastPower(int a, int b, int n) {if (n == 0) return 1 % b;if (n == 1) return a % b;long product = fastPower(a, b, n/2);product = product * product % b;if (n % 2 == 1) product = product * a % b;return (int) product;}
}

[LintCode] Fast Power相关推荐

  1. Lintcode: Fast Power

    Calculate the a^n % b where a, b and n are all 32bit integers.Example For 2^31 % 3 = 2For 100^1000 % ...

  2. C++fast power快速指数的实现(附完整源码)

    C++fast power快速指数的实现算法 C++fast power快速指数的实现算法完整源码(定义,实现,main函数测试) C++fast power快速指数的实现算法完整源码(定义,实现,m ...

  3. 802.11 Power Save(节电/省电/节能)机制总结

    背景介绍 了解WIFI节能的机制之前,首先要了解WIFI能耗的消耗发生在什么状态下,显而易见,发送和接收肯定是消耗能量的,还有一点是要认识到的,Power Save通常是在STA端进行的,AP需要一直 ...

  4. Unity Shader:雾的数学运算以及在Unity中使用Fog

    文章目录 1,Unity Fog效果图 2,uniform fog均匀雾的数学公式推导 3,Fog在Unity中的应用 4,Unity Fog的源码分析 5,Unity exp fog VS unif ...

  5. SSH2.0编程 ssh协议过程实现(转)

    SSh协议: 全称为Secure Shell,即很安全的shell,主要目的是用来取代传统的telnet和r系列命令(rlogin,rsh,rexec等)远程登录和远程执行命令的工具,实现远程登录和远 ...

  6. 数字集成电路面试常见问题_关于空间级集成电路的常见误解

    数字集成电路面试常见问题 对集成电路辐射硬度的常见误解 (Common misconceptions on the radiation hardness of integrated circuits) ...

  7. C和C++算法完整教程专栏完整目录

    C和C++算法完整教程专栏完整目录 专栏说明如下 完整专栏目录如下 专栏说明如下 内容:C和C++算法完整教程 数量:680篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加 ...

  8. 04 Python基本数据类型

    数字类型及操作 整数类型 可正可负,没有取值范围限制 pow(x,y):计算 x^y,想算多大没有限制 四种进制 十进制:213,99,-14 二进制:以0b或0B开头:0b010,-0B110 八进 ...

  9. ZJOI2017 讲课Day1笔记

    额,参考一下大神的笔记.... 地址 http://www.cnblogs.com/ARZhu-NOIpAK/p/6596879.html Day1 2017-3-24 3:34:43 苟-- 富贵 ...

最新文章

  1. SQL Server 创建定时任务JOB
  2. eCognition易康导出分割结果
  3. 多帧点云数据拼接合并_多工作簿数据合并,还在手动复制粘贴就out了,用批处理一键搞定...
  4. 对象的序列化流_ObjectOutputStream
  5. java 远程修改linux服务器文件_linux服务器之间复制文件
  6. 图形验证码校验php,ThinkPHP实现生成和校验验证码功能
  7. linux下yum安装pgsql,CentOS7使用yum安装PostgreSQL和PostGIS的方法
  8. 学点 C 语言(3): 转义字符
  9. 计算机网络大连理工大学,大连理工大学计算机网络.doc
  10. 译文伪原创的全文翻译软件
  11. android 插件开发 过时,Android Sutdio ( Intelij ) 插件开发
  12. Quest2有线串联steamVR
  13. 关于能力模型的思考总结
  14. Prolog语言介绍(一)
  15. [msm8953][Android9.0] Sending non-protected broadcast ....
  16. 华为od统一考试B卷【最少面试官数】C++ 实现
  17. Python数据结构速成
  18. java jtextarea边框_java swing中的JTextArea边框
  19. 原子性 可见性 有序性_极简主义的内容可见性
  20. Dockerfile实践指南之COPY vs ADD

热门文章

  1. 【Linux】【服务器】 CentOS7下安装MySQL(版本8.0)详细过程步骤
  2. 坡道行驶电动小车_事发红绿灯路口!东莞一女子骑电动滑板车被撞致颅内出血…...
  3. 用python打开视频_python读取视频流提取视频帧的两种方法
  4. jsp页面发生异常跳转到友好页面
  5. 安卓队列缓存文件,包括断点续传
  6. halcon的算子清点:Chapter 9 匹配
  7. python判断值是否在excel中_python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功...
  8. Matlab图像形态学处理—开操作和闭操作
  9. 深度学(deep learning)基础-神经网络简易教程
  10. Spring学习8之静态代理