这题由于最后除法没和取模放一个式子里,忘记用逆元了,卡了好久....
这类题目写少了..
#include<bits/stdc++.h> // #define int long long using namespace std; const int mod=1e9+7; long long quick(long long base,long long power,long long p) { long long ans=1; while(power) { if(power&1) ans=ans*base%p; base=base*base%p; power>>=1; } return ans%p; } int main() { long long n; scanf("%lld",&n); long long pos; if(n>=2) pos=quick(2,n-2,mod); else { cout<<"0"<<endl; return 0; } n=n%mod; long long ans=n*(n-1)%mod; ans=ans*pos%mod; cout<<ans/2<<endl; }