推出来n大于1时,3^(n-2)*4。
这题让我很是扎心,比赛的时候和队友思路很快就出了,可是提交wa。
后来队友也是找不出错,直接重写了。结果AC,我发现是快速幂中有个权开小了,int改成long long就成了。
#include<bits/stdc++.h> using namespace std; const int MOD=1e9+7; typedef long long ll; ll pow1(ll a,int b,int c){ ll ans=1; a=a%c; while(b>0){ if(b&1){ ans=(ans*a)%c; } a=(a*a)%c; b>>=1; } return ans; } int main() { int n; scanf("%d",&n); ll ans; if(n==1) ans=1; else{ ans=pow1(3,n-2,MOD); ans=(ans*4)%MOD; } printf("%lld\n",ans); return 0; }