• 【快速幂取模】【AOJ-569】乘的更快


    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] 
    /**************************************************************************************************************
    思路:快速幂取模
    注意:要把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
    ", 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;
    }
  • 相关阅读:
    添加组合索引时,做相等运算字段应该放在最前面
    常用位运算
    redis php扩展简单使用
    mysql优化之简单概念
    mysql优化之sql语句优化
    简单画图 gd库函数
    win下 安装mongodb
    伪静态之实际应用
    tomcat win简单配置
    docker
  • 原文地址:https://www.cnblogs.com/ahu-shu/p/3558156.html
Copyright © 2020-2023  润新知