首页 > 其他 > 详细

获取用户ip接口

时间:2014-02-21 03:29:12      阅读:241      评论:0      收藏:0      [点我收藏+]
Description
上初中的时候我们就学会了幂乘运算,可是我们却不知道对于高阶的幂乘,出结果的方法比较慢,那么你有什么更好的方法吗?

 

Input
第1行,一个整数N(1<=N<=1000),表示要计算的数据组数
第2-N+1行,每行两个整数,第1个是x(1<=x<=100),表示底数,第2个是y(0<=y<=10000000),表示指数。

 

Output
对于每一组输入的数据给出幂乘的结果x^y(x的y次方),由于结果可能非常大,要求对99991取余。

 

Sample Input
Original Transformed
3
2 3
5 10
3 0
3[EOL] 
2[SP]3[EOL] 
5[SP]10[EOL] 
3[SP]0[EOL] 
[EOF] 

 

Sample Output
Original Transformed
8
66498
1
8[EOL] 
66498[EOL] 
1[EOL] 
[EOF] 
bubuko.com,布布扣
/**************************************************************************************************************
思路:快速幂取模
注意:要把int类型的x转化为long long 或__int64
**************************************************************************************************************/
#include <cstdio>
int pow_mod(int x, int y);
int main()
{
    freopen("data.in", "r", stdin);
    int n;
    scanf("%d", &n);
    while(n--)
    {
        int x, y;
        scanf("%d %d", &x, &y);
        printf("%d\n", pow_mod(x, y));
    }
    return 0;
}

int pow_mod(int x, int y)
{
    x = (__int64)x;
    __int64 ans = 1 , base = x;
    if(!y)
        return 1;
    while(y)
    {
        if(y & 1)
            ans = ans * x % 99991;
        x = x * x % 99991;
        y >>= 1;
    }
    return (int)ans;
}
bubuko.com,布布扣

 

获取用户ip接口

原文:http://www.cnblogs.com/qiangspecial/p/3558141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!