题目描述
求:3^0 + 3^1 +...+ 3^(N) mod 1000000007。
输入
每行一个整数N(0 <= N <= 10^9)
输出
输出:计算结果
样例输入
3
样例输出
40
提示
(a/b)%c=(a%(b*c))/b (a 能整除b)
代码:
#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
long long int mod_pow(long long int x,long long int n)
{
long long int res = 1;
while(n > 0)
{
if(n & 1)
res = res * x % mod;
x = x * x % mod;
n >>= 1;
}
return res;
}
int main()
{
long long int n, ans;
while(~scanf("%lld", &n)){
n++;
ans = (mod_pow(3, n) - 1) * 500000004 % mod;
printf("%lld\n", ans);
}
return 0;
}