# ZeroJudge - d309: Put a banana in your ear! ### 題目連結:https://zerojudge.tw/ShowProblem?problemid=d309 ###### tags: `ZeroJudge` `數學` ```cpp= #include <iostream> using namespace std; #define MOD 1000000007 int powersOf2[32] = { 1, 2 }; void Initialize() { for (int i = 2; i < 32; ++i) powersOf2[i] = ((long long)powersOf2[i - 1] * powersOf2[i - 1]) % MOD; } int FastPower(int power) { if (power < 0) return 0; int answer = 1, index = 1; while (power) { if (power & 1) answer = ((long long)answer * powersOf2[index]) % MOD; power >>= 1; ++index; } return answer; } int main() { cin.sync_with_stdio(false); cin.tie(nullptr); Initialize(); int people; while (cin >> people) cout << (((long long)people * (people - 1)) % MOD * FastPower(people - 2)) % MOD << '\n'; } ```