• 特技的幂 南邮NOJ网络选拔赛2075


    特技的幂

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
    总提交 : 479            测试通过 : 101 

    题目描述

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



    输入

    第一个行一个整数T,表示有T组数据

    每组数据,输入xxy次幂 (2 x ,y10^9)

    输出

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

    样例输入

    2
    2 4
    2 100000000

    样例输出

    16
    494499948

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int64_t mod_exp(int64_t a, int64_t b, int64_t c)        //¿ìËÙÃÝÈ¡Óàa^b%c
    {
        int64_t res, t;
        res = 1 % c;
        t = a % c;
        while (b)
        {
            if (b & 1)
            {
                res = res * t % c;
            }
            t = t * t % c;
            b >>= 1;
        }
        return res;
    }
    int main()
    {
        int T;
        cin >> T;
        while (T--)
        {
            int64_t x,y;
            cin >> x>>y;
            cout << mod_exp(x, y, 1000000007) << endl;
        }
        return 0;
    }

    加特技的幂,也是醉了~~~

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    网页制作-表单元素2
    网页制作-表单元素
    网页制作_表格
    网页制作常用标签
    IT新起之秀
    Android Studio 快捷键
    android github
    手机抓包 http tcp udp?
    Ubuntu16.04 Caffe 安装步骤记录(超详尽)(转载)
    ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965676.html
Copyright © 2020-2023  润新知