求:
30+31+...+3Nmod1000000007
Input
输入一个数
N(0<=N<=109)
Output
输出:计算结果
Input示例
3
Output示例
40
题解
等比数列求和即可
ans=(3n+1−1)⋅2−1mod1000000007
2−1=500000004mod1000000007
#include<stdio.h>
const int M=1000000007;
const int tow=500000004;
typedef long long LL;
LL pow(LL a,int n){
LL res=1;
while(n){
if(n&1) res=res*a%M;
a=a*a%M;
n>>=1;
}
return res;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",tow*(pow(3,n+1)-1)%M);
return 0;
}