NEUQ 1431:快速幂入门

来源:互联网 发布:钢之炼金术师知乎 编辑:程序博客网 时间:2024/05/22 00:07

1431: 快速幂入门

时间限制: 1 Sec  内存限制: 128 MB

题目描述

快速幂为我们的幂运算提供了一个很快的方法。这道题要求你练习刚刚学会的快速幂。即计算a^n。我们都知道整数能够表示的范围有限,所以这里要求让结果对100000007取模。

输入

多组输入数据,请处理至文件结尾 每组数据包含两个整数,a与n,输入保证a和n都在32位整数能够表示的范围内,a,n>=0

输出

a^n对100000007取模的值,每组数据的输出占一行。

样例输入

2 29 23 3

样例输出

48127

提示

来源

xzx


分析:

1、如题,考察快速幂。

2、取模,我在取模时犯了一个小小错误(痛苦)。


LANGUAGE:C++

CODE:

#include <iostream>typedef long long ll;const int mod=100000007;using namespace std;ll poww(ll a,ll b){    ll r=1,base=a%mod;    while(b!=0)    {        if(b&1)        {            r*=base;   //我一开始写的是r*=base%mod;,注意优先级。            r%=mod;        }        base*=base%mod;        base%=mod;        b>>=1;//        cout<<r<<endl;    }    return r%mod;}int main(){//    freopen("1431in.txt","r",stdin);//    freopen("1431out.txt","w",stdout);    ll m,n;    while(cin>>m>>n)    {        cout<<poww(m,n)<<endl;    }    return 0;}



0 0
原创粉丝点击