【JZOJ 4742】【NOIP2016提高A组模拟9.2】单峰 (数学,快速幂)

问题描述
这里写图片描述
输入
这里写图片描述
输出
这里写图片描述
样例输入
2
样例输出
2
数据范围
【JZOJ 4742】【NOIP2016提高A组模拟9.2】单峰 (数学,快速幂)_第1张图片
算法讨论
【JZOJ 4742】【NOIP2016提高A组模拟9.2】单峰 (数学,快速幂)_第2张图片

#include 
#define LL long long
#define mo 1000000007
using namespace std;
LL n;

LL power(LL a,LL b)
{
    LL ans=1,base=a;
    while (b!=0)
    {
        if ((b & 1)!=0)
            ans=(ans*base) % mo;
        base=(base*base) % mo;
        b>>=1;
    }
    return ans;
}

int main()
{
    scanf("%lld",&n);
    printf("%lld",power(2,n-1));
}

你可能感兴趣的:(数学)