您的位置:首页 > 其它

南邮 OJ 2075 特技的幂

2015-08-08 11:05 274 查看


特技的幂

时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte

总提交 : 523 测试通过 : 125

比赛描述

幂运算是常见的数学运算之一,其原理是用同一个数相乘多次,但是有的时候当幂指数特别大的时候,这样的运算就太浪费时间。请大家学会在幂中加特技,让幂运算的效率提高到可以接受的程度。

输入

第一个行一个整数T,表示有T组数据
每组数据,输入x,y 求x的y次幂
(2≤ x ,y≤10^9)

输出

每组数据输出一个整数,表示幂运算对1000000007取模后的结果

样例输入

2

2 4

2 100000000

样例输出

16

494499948

题目来源

kojimai

#include<iostream>
#define MOD 1000000007
int main(){
__int64 T,x,y,result,i;
scanf("%I64d",&T);
while(T--){
scanf("%I64d%I64d",&x,&y);
for(i=1,result=1; i<=y; ){
if(i&y){
result *= x;
result %= MOD;
}
x = x*x%MOD;
i <<= 1;
}
printf("%I64d\n",result);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: