#include <iostream>
using namespace std;
long long m = 1e9 + 7;
// 递归计算阶乘并取模,取模is must, 否则容易计算出错为0
long long factorial(int n) {
if ((n == 0) || (n == 1)) {
return 1;
}
return n * factorial(n - 1) % m;
}
int main() {
int n;
while (cin >> n) {
long long res;
if ( n % 2 == 0) { // when n is even number
res = factorial(n / 2) * factorial(n / 2) * 2 % m;
cout << res ;
} else if ( n % 2 == 1) { //when n is old number
res = factorial( n / 2 + 1) * factorial(n / 2) % m;
cout << res;
}
}
return 0;
}

京公网安备 11010502036488号