CTX学长的快速幂
来源:互联网 发布:魔兽争霸3mac怎么安装 编辑:程序博客网 时间:2024/05/23 09:56
题目链接:点击打开链接
CTX学长的快速幂
时间限制:1 Sec内存限制:128 MiBspecial judge:No
提交:62答案正确:5
题目描述
什么?听说你会快速幂?这么厉害的吗,那我就出一道快速幂的题吧!题意很简单,给你n,m的值,我想知道n的m次方是多少,但是这个答案太大了,所以你只需要输出答案最后面的十位数字即可。
输入
T组输入,接下来的T行(T<300),每一行输入n,m(0<n<=100 ,0<=m<=1000000000)
输出
输出T行,每一行输出n^m的后十位数字(不够10位用零补)。
样例输入
32 103 31 1000000000
样例输出
000000102400000000270000000001
这个题用一般的快速幂会错是因为极限范围会炸掉long long
那么我们只要换一种乘的方式就好。
以123*321为例:((10*10+2*10+3)*321)%1e10=(((321*10)%1e10)*10)%1e10+(((321*10)%1e10)*2)%1e10+321*3。
这道题次要对1e10取余,那么最多也是10位数乘以10也不过11位肯定不会超过long long,那么我把乘法拆成这样来算肯定不会超过范围。另外想一下快速幂的原理,我们也可以写出来一个快速乘法。只要把里边的乘号换成加号即可。这里不多做解释。用快速成也可以过。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const long long mod=1e10;long long sucheng(long long a,long long b){ long long sum=0; while(b) { sum=(sum+a*(b%10))%mod; a=(a*10)%mod; b/=10; } return sum;}//long long sucheng(long long a,long long c)//{// long long b=0;// while(c)// {// if(c&1)// b=(b+a)%mod;// c/=2;// a=(a+a)%mod;// }// return b;//}long long poww(long long a,long long c){ long long b=1; while(c) { if(c&1) b=sucheng(a,b)%mod; c/=2; a=sucheng(a,a)%mod; } return b%mod;}int main(){ int t; scanf("%d",&t); while(t--) { long long n,m; scanf("%lld%lld",&n,&m); printf("%010lld\n",poww(n,m)); }}
阅读全文
0 0
- CTX学长的快速幂
- NYOJ I : CTX学长的快速幂
- CTX学长的快速幂(快速幂运用)
- CTX学长的01串
- CTX学长的找位置游戏
- NYOJ B : CTX学长的01串
- CTX学长的找位置游戏(错排)
- NYOJ J : CTX学长的找位置游戏
- ${ctx} 的那些事
- Netty中ctx.writeAndFlush与ctx.channel().writeAndFlush的区别
- 毕业学长的建议
- 学长出的题。。
- 学长的疑惑???
- 学长的训诫C++
- zkc学长的福利
- ${ctx}与${pageContext.request.contextPath}的区别
- 关于${ctx}拿不到值的问题
- ${ctx}在js中应用的问题
- Web性能提升
- 二叉树-3
- (作业)TableView、Delegate、DataSource
- python将py文件转换为pyc
- iOS中的生命周期总结
- CTX学长的快速幂
- linux基础(十二)虚拟机上外网
- jquery 1.7.2的 live/on事件 $.ajax的 async:false,
- 每天回顾linux命令(stat)
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网(补)
- linux软链接的创建、删除和更新
- 第二届数据标准化及数据治理大会成功举办 助力数据治理工作创新发展
- SSM(1)-SSM整合思想
- 报名 | 大数据基础设施应用场景和数据隐私保护讲座