51nod 1031(快速幂)

来源:互联网 发布:盐城大数据产业园 编辑:程序博客网 时间:2024/05/18 00:30

题目链接:点击打开链接;

题意:求:3^0 + 3^1 +...+ 3^(N) mod 1000000007;

分析:快速幂,没啥说的

代码如下:

#include <set>#include <queue>#include <math.h>#include <vector>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <limits.h>#include <algorithm>using namespace std;const int mod=1000000007;long long quick_mod(long long a,long long b){    long long ans=1;    while(b){        if(b&1){            ans=ans*a%mod;            b--;        }        b>>=1;        a=a*a%mod;    }    return ans;}int main(){    int n;    scanf("%d",&n);    n+=1;    long long sum=(quick_mod(3,n)-1+mod)%mod;    sum=(sum*500000004)%mod;    printf("%I64d\n",sum);}


1 0
原创粉丝点击