题意:

给出3个正整数A B C,求A^B Mod C。

例如,3 5 8,3^5 Mod 8 = 3。

分析:

快速幂模板题。

快速幂:

1.自然数的拆分

对于任何的自然数, 可以把它用形如1001的二进制码表示,进而写成形如 20 + 23 的形式。

这一步的实现:

  • 对任意自然数a, 当且仅当 a&1 == 1为真时,其二进制码最低位为1.
  • 通过位运算, 将可将其二进制码的任意一端的任意位舍去。

2.因子的迭代

我们需要遍历底数的 20,21,22,23......次方。

这一步的实现:

  • 2n+ 2n=2n+1
  • ca+b=ca * cb

实现:

import java.util.*;
public class Main {
public static long C;
public static long qPow(long a, long b) {
long ans = 1;
long base = a;
while (b>0) {
if ((b & 1) > 0) {
ans = ((ans%C)*(base%C))%C;
}
base = ((base%C)*(base%C))%C;
b >>= 1;
}
return ans;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
long a = input.nextLong();
long b = input.nextLong();
C = input.nextInt();
System.out.printf("%d\n",qPow(a,b));
input.close();
} }

注意:

一般使用长整形。

51Nod - 1046 (附关于快速幂的讨论)的更多相关文章

  1. A^B Mod C (51Nod - 1046 )(快速幂)

    给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^ ...

  2. 2019南昌邀请赛 C. Angry FFF Party 大数矩阵快速幂+分类讨论

    题目链接 https://nanti.jisuanke.com/t/38222 题意: 定义函数: $$F(n)=\left\{\begin{aligned}1, \quad n=1,2 \\F(n- ...

  3. 51Nod——T 1113 矩阵快速幂

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 ...

  4. 51Nod 1046 A^B Mod C(日常复习快速幂)

    1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = ...

  5. (快速幂)51NOD 1046 A^B Mod C

    给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^ ...

  6. 51nod 1013 3的幂的和 - 快速幂&除法取模

    题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 Konwledge Point: 快速幂:https:/ ...

  7. 51nod 1113 矩阵快速幂

    题目链接:51nod 1113 矩阵快速幂 模板题,学习下. #include<cstdio> #include<cmath> #include<cstring> ...

  8. 51nod 1013快速幂 + 费马小定理

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 这是一个等比数列,所以先用求和公式,然后和3^(n+1)有关,有n ...

  9. 51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)

    1004 n^n的末位数字 题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数N,输出 ...

随机推荐

  1. 《用Python做HTTP接口测试》练习资料共享

    原作者代码在https://github.com/akuing/python-http-interface-test

  2. FLV 格式导入 视频

  3. java List<Map<String,Object>遍历的方法

    public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayL ...

  4. 不用安装Oracle客户端

    1 pl/sql developer 1.1 下载解压instantclient-basic-nt-12.1.0.2.0. 1.2 在其目录下新建Network/ADMIN/tnsnames.ora文 ...

  5. zookeeper第一篇

    它是一个为分布式应用提供一致性服务的软件, 提供的功能包括:配置维护.域名服务.分布式同步.组服务等.

  6. 保存chrome书签中链接顺序的小技巧

    长期以来,我的chrome浏览器书签总是不能自主排序,用书签管理器排序之后,不关闭chrome是好的,一旦关闭重开,又会恢复成原先的排序,实在很诧异,手动修改Bookmars文件也不行. 我们知道,如 ...

  7. CPU二则

    CPU二则 CPU二则 aligned load & unaligned load non-temporal store(streaming store) 参考文献 aligned load ...

  8. 【博客开篇】服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)

    现下流行LAMP,如果选择Windows服务器,那么一般都会选择IIS+Asp.Net+SQL Server(可以简称为WINS),这些配置起来,都是非常方便的. 但也有一些特殊的服务器配置,例如:W ...

  9. uniapp 标题后面紧跟一个标签的布局

    使用uni-app的时候,因为想用flex布局,所以一开始就设置了全部view display为flex. 之后遇到了如下这种样式: 开始想了半天没想出来,后来想到div span有这个效果. 然后就 ...

  10. Linux Simple Systemd Service Guide

    Simple Systemd Service Guide 主题 Systemd介绍 Systemd基本操作 怎样编写_service_.service文件 怎样部署service Systemd介绍 ...