求:3^0 + 3^1 +...+ 3^(N) mod 1000000007
Input
输入一个数N(0 <= N <= 10^9)
Output
输出:计算结果
Input示例
3
Output示例
40
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
#define ll long long
const int mod=1e9+7;
const int ny=mod/2+1;
ll ksm(int k);
int main()
{
int n;ll ans;
scanf("%d",&n);
ans=ksm(n);
/// printf("%lld\n",ans);
ans=3*(ans-1)*ny%mod;
printf("%lld\n",ans+1);
return 0;
}
ll ksm(int k)
{
ll ans=1,a=3;
while(k>0)
{
if(k%2==1)
ans=ans*a%mod;
a=a*a%mod;
k/=2;
}
return ans;
}