【题目描述】
输入b,p,k的值,求bpmodk的值。其中b,p,k×k为长整型数。

【输入】
输入b,p,k的值。

【输出】
求bpmodk的值。

【输入样例】
2 10 9
【输出样例】
2^10 mod 9=7
题目分析:
对于任何一个自然数b都有b=2*b/2+b%2;例如:19=2X9+1;所以,b19=b9+9+1=b9*b9*b;而b9还可以继续分解,所以最终的结束条件就是b0=1;这就是分治的思想。
这一段文字的代码实现是这样的:

int power(int a,int b)
{if(b==0) return 1;int temp=power(a,b/2);temp=temp*temp;if(b%2==1)temp*=a;return temp;
}

没错这就是快速幂,不过要算大数的话要吧int换成long long
完整代码:

#include<iostream>
using namespace std;
typedef long long ll;
int k;
int power(int,int);
int main()
{int b,m;cin>>b>>m>>k;cout<<b<<"^"<<m<<" mod "<<k<<"=";int shu=power(b%k,m);//取余是防止b过大这里取余不影响最后结果cout<<shu;return 0;
}
int power(int a,int b)
{if(b==0) return 1;int temp=power(a,b/2)%k;//这里取余也不影响结果temp=(temp*temp)%k;//同上if(b%2==1)temp*=a;return temp%k;//最后结果由题意要取余
}

取余运算(mod,快速幂)相关推荐

  1. 数论练习(1)——取余运算(快速幂)

    1497 取余运算  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 输入b,p,k的值,编程计算b ...

  2. 大数取模运算,快速幂取模运算

    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值. ...

  3. 洛谷——P1226 取余运算||快速幂

    P1226 取余运算||快速幂 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出"b^ ...

  4. 洛谷 1226 取余运算||快速幂

    洛谷  取余运算||快速幂 1226 其实比起楼下的大佬们,我主要是多了些位运算和讲解. 想法一: 直接输出 pow(b,q)%k 嗯~~勇气可嘉,但是看一眼数据范围(长整型)就会意识到,这个方法也许 ...

  5. 【数学】幂运算与快速幂取余

    一.幂运算 1.幂的定义: 的幂就是多个相乘,记作,表示的次幂,即个相乘,我们把叫做底数,叫做指数. 2.幂的运算: 我们可以用公式将幂运算进行简化,公式如下: 3.求幂方法: (1). Python ...

  6. 取余运算||快速幂(洛谷-P1226)

    题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出"b^p mod k=s" ...

  7. 信息学奥赛一本通 1326:【例7.5】 取余运算(mod)

    [题目链接] ybt 1326:[例7.5] 取余运算(mod) [题目考点] 1. 快速幂 [解题思路] 快速幂算法,用到了分治思想. 如果指数为奇数,那么结果乘以当前的底数,指数除以2(整除运算) ...

  8. 信息学奥赛一本通(1326:【例7.5】 取余运算(mod))

    1326:[例7.5] 取余运算(mod) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 10443     通过数: 4787 [题目描述] 输入b,p,k的值 ...

  9. 1326:【例7.5】 取余运算(mod)

    1326:[例7.5] 取余运算(mod) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 14599     通过数: 6748 [题目描述] 输入b,p,kb, ...

  10. java hash取余_为什么Java的hash表的长度一直是2的指数次幂?为什么这个(hash(h-1)=hash%h)位运算公式等价于取余运算?...

    1.什么是hash表? 答:简单回答散列表,在hash结构散列(分散)存放的一种数据集结构. 2.如何散列排布,如何均匀排布? 答:取余运算 3.Java中如何实现? 答:hash&(h-1) ...

最新文章

  1. 解决list-style-type属性失效
  2. 【HDU】3441 Rotation
  3. JDBC之一:快速入门
  4. 深入学习SpringMVC以及学习总结
  5. Spark在文本统计中的简单应用
  6. server2012 asp odb数据原_异地服务器文件及数据库定时备份
  7. Android TextView文字横向自动滚动(跑马灯)
  8. 将多个markdown文件发布为一个html或pdf文件的方法梳理
  9. linux tr 命令_在Linux中使用tr命令玩角色
  10. RestClient操作文档
  11. 手机触摸屏有电阻屏和电容屏,有什么区别?
  12. 在微型计算机中,ram的特点是___.,2017计算机基础模拟试题「附答案」
  13. 2019.11.28
  14. 服务器kvm切换器怎么使用?
  15. mysql查询周边商铺_基于Mysql5.7实现查找附近的店铺
  16. 如何让百度搜到我的网站或博客-百度seo
  17. UVa1618 弱键
  18. 【ArcGIS】ArcGIS10中根据shapefile裁剪栅格影像
  19. 华硕T100 安装linux,华硕t100ha安装win10win8双系统安装全图解
  20. c++的3D游戏笔录-基于panda3d(2)

热门文章

  1. AndroidStudio 项目配NDK
  2. [NOI Online #3 提高组] 水壶
  3. GreenPlum无符号tinyint开发
  4. Linux自建steam饥荒服务器教程
  5. ThinkPHP5.0完全开发手册——调试模式
  6. 权限修饰符| 重写 和 重载之间的区别| super和this的区别|Object类|equals 和 ==的区别|多态|转型 cast的总结
  7. Qt-软件皮肤切换qss样式
  8. HDU - 6789
  9. preventDefault() 方法
  10. MacOS中MacPorts的安装和使用