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

Example

For 231 % 3 = 2

For 1001000 % 1000 = 0

Challenge

O(logn)

Solution:

 class Solution {
/*
* @param a, b, n: 32bit integers
* @return: An integer
*/
public int fastPower(int a, int b, int n) {
if (n==0) return 1%b; int res = fastPowerRecur(a,b,n);
return res;
} public int fastPowerRecur(int a, int b, int n){
if (n==1)
return a%b; long temp = fastPowerRecur(a,b,n/2);
temp = temp*temp%b;
int res = (n%2==0) ? (int) temp: (int)(temp*a%b);
return res;
}
};

最新文章

  1. Android安全相关文章[不定期更新…]
  2. Bootstrap框架(基础篇)之列表,表格,表单
  3. centos 安装haproxy 1.6.3
  4. 深入理解Openstack自动化部署
  5. SQL Server活动监视器
  6. 3p
  7. AJAX开发技术--AJAX简介
  8. Random在高并发下的缺陷以及JUC对其的优化
  9. RHEL6 SoftRaid 更换故障硬盘
  10. Python基础-数据类型-转摘
  11. Electron把网页打包成桌面应用并进行源码加密
  12. Xamarin.Android 调用手机拍照功能
  13. Hadoop HDFS的shell(命令行客户端)操作实例
  14. 10 个超炫绘制图表图形的 Javascript 插件【转载+整理】
  15. JVM常见面试题
  16. shrio Subject的认证
  17. iPython网页启动
  18. Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)
  19. C++面向对象高级编程(七)point-like classes和function-like classes
  20. JPype:实现在python中调用JAVA

热门文章

  1. Server.MapPath()获取绝对路径
  2. Linux 系统中用户切换(su user与 su - user 的区别)
  3. JavaScript之放大镜效果
  4. JavaEE是什么?
  5. NAT
  6. 30类css选择器
  7. 7款超酷HTML5 3D动画精选应用及源码
  8. debian终端菱形乱码修复
  9. Viewport Resizer下载 谷歌前端自适应开发工具
  10. Fedora 20 创建桌面快捷方式