王道机试指南 例题6.10 人见人爱A^B(快速幂应用)

题目:

快速幂原理:

mod 1000原理:

代码:

#include <iostream>
using namespace std;

int FastExp(int a,int b,int mod){//用快速幂求a^b % mod
    int ans=1;
    while(b!=0){ //不断求b的二进制数位
        if(b%2==1){
            ans=ans*a;
            ans=ans%mod;
        }
        b=b/2;
        a=a*a;
        a=a%mod;
    }
    return ans;
}

int main(){
    int a,b;
    while(cin>>a>>b && a!=0){
        cout<<FastExp(a,b,1000)<<endl;
    }
    return 0;
}

运行结果:

全部评论

相关推荐

评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务