基准时间限制:1 秒 空间限制:131072 KB 分值: 20
难度:3级算法题
求:3^0 + 3^1 +...+ 3^(N) mod 1000000007
Input
输入一个数N(0 <= N <= 10^9)
Output
输出:计算结果
Input示例
3
Output示例
40
<span style="font-size:18px;">#include<cstdio>
typedef long long LL;
#define M 1000000007
LL quick_pow(LL a,LL n)
{
LL ans=1;
while(n)
{
if(n&1)
ans=ans*a%M;
a=a*a%M;
n>>=1;
}
return ans;
}
int main()
{
LL n;
scanf("%d",&n);
LL sum1=quick_pow(3,n+1);
LL sum2=quick_pow(-2,M-2);
LL ans=(1-sum1-M)*sum2%M;
printf("%lld\n",ans);
return 0;
}</span>