快速幂取模 nyoj
来源:互联网 发布:计算机图形学编程 编辑:程序博客网 时间:2024/05/21 10:00
求m的n次方对去q取余数的结果。
有T组数据;
0<m,n,q<10000000
//分析:
//1.如果按正常的先求次幂,然后再取余数,即便用long long 也不可能存的下,
//2.然而如果用数组,或字符串存储,也是非常耗时的,必定超时.
///3.由于无论先取余数,还是后取余数,都不会影响结果。(ep:假如a%b=c,那么a=x*b+c,其中x=a/b)
//4.所以就应该用到 快幂求模 了.
#include<stdio.h>
int main()
{
int T;
int m,n,q,num;
scanf("%d",&T);
while(T--)
{
num=1;////用num储存 奇数个的元素
scanf("%d%d%d",&m,&n,&q);
m=m%q;//先进行预处理,使得运算数据尽可能小
while(n!=1)a//当元素个数变为1个时,结束循环
{
if(n%2==1)
{
num=num*m;//将多余的单个元素存放到 num中。
num=num%q;//防止num过大,超范围
n--;
}
m=m*m;//每两个元素合为一个元素,使得元素数量减半、
m=m%q;//防止a过大
n=n/2;//元素个数减半,加快运行素度
}
m=m*num;//把多余的数和最后剩下的一个元素合起来
printf("%d\n",m%q);
}
return 0;
}
//哪不清楚就评论一下,会尽量解答的
0 0
- 快速幂取模 nyoj
- NYOJ - 快速查找素数
- NYOJ-快速查找素数
- NYOJ 快速查找素数
- NYOJ-快速查找素数
- NYOJ 快速查找素数
- NYOJ 快速查找素数
- NYOJ 301 递推求值【矩阵快速幂取模】
- NYOJ--187快速查找素数
- NYOJ 187 快速查找素数
- nyoj 187 快速查找素数
- NYOJ 187 快速查找素数
- NYOJ 187 快速查找素数
- NYOJ 187 快速查找素数
- NYOJ 187 快速查找素数
- NYOJ 187 快速查找素数
- NYOJ 187 快速查找素数
- nyoj 420(快速幂)
- Java网络编程之TCP通信
- YTU-OJ-Problem Q: A改错题--体检情况分析
- Android基础入门教程——2.2.5 GridLayout(网格布局)
- 微信企业号开发:获取AccessToken
- 收藏网站34
- 快速幂取模 nyoj
- RGB到HSI转换
- Xcode中引用类的一些问题
- 收藏网站35
- Android基础入门教程——2.2.6 AbsoluteLayout(绝对布局)
- Python多线程学习
- PAT (Basic Level) Practise (中文)1001. 害死人不偿命的(3n+1)猜想 (15) C语言
- Python笔记:高级数据结构
- getopt