求:3^0 + 3^1 +...+ 3^(N) mod 1000000007
Input
输入一个数N(0 <= N <= 10^9)
Output
输出:计算结果
Input示例
3
Output示例
40
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
long long quickmod(long long a,long long b,long long m)
{
long long ans=1;
while(b)
{
if(b&1)
{
ans=(ans*a)%m;
}
b/=2;
a=a*a%m;
}
return ans;
}
int main()
{
int N;
long long sum;
while(cin>>N)
{
sum=(quickmod(3,N+1,1000000007)-1)*500000004%1000000007;//注意这里的5000000004,2对1000000007的逆元为500000004
//sum=sum%1000000007;
cout<<sum<<endl;
}
return 0;
}