快速幂
#include<iostream> typedef long long ll; using namespace std; ll mod = 1000000007; ll qpow(ll a, ll n)//计算a^n % mod { ll re = 1; while(n) { if(n & 1)//判断n的最后一位是否为1 re = (re * a) % mod; n >>= 1;//舍去n的最后一位 a = (a * a) % mod;//将a平方 } return re % mod; } int main() { ll n; cin >> n; ll ans = n * qpow(2,n-1) % mod; cout << ans; return 0; }
此题的公式为:n*(2^(n-1))
用了快速幂模板即可,理解渗透参悟
致千里!