码迷,mamicode.com
首页 > 其他好文 > 详细

AC_a^b

时间:2019-07-07 12:55:25      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:ima   ios   while   强制转换   二进制   col   std   http   mes   

技术图片

代码:

#include<iostream>
using namespace std;
int main()
{
    int a, b, p;
    cin >> a >> b >> p;
    int res = 1 % p;
    /*思路实际上是每次去用个位去模,然后乘上高位再继续模*/
    while (b)
    {
        if (b & 1)//个位是1  a&1 代表的意思是a和1做二进制的且运算 即看a的最后边那一位是不是1 是1的话 返回1 否则返回0
        {
            cout <<"(b & 1)"<< (b & 1) << endl;
            res = res * 1ll * a % p;//强制转换为long long 形式
            cout << "res"<<res << endl;
        }
        a = a * 1ll * a%p; //十位
        cout <<"a= "<< a << endl;
        b >>= 1;//个位去掉
    }
    cout << res << endl;
    return 0;
}

 

AC_a^b

标签:ima   ios   while   强制转换   二进制   col   std   http   mes   

原文地址:https://www.cnblogs.com/gcter/p/11145863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!