分奇偶考虑,偶数个需要x2,因为奇数位和偶数位可以交换。

高中的排列组合知识,Axx算一下就行了

n = int(input())

# 奇数项为奇数 偶数项为偶数 满足题意
if n % 2 == 0:
    j_patch = 0
    x2_num = 2
else:
    j_patch = 1
    x2_num = 1

j = n // 2 + j_patch  # 奇数数量
o = n // 2  # 偶数数量

def pailie(x, mod) -> int:  # x个数字排列组合的数量
    result = 1
    for each in range(1, x+1):
        result *= each
        result = result % mod
    return result

mod = 10 ** 9 + 7
tmp_j = pailie(j, mod)
tmp_o = pailie(o, mod)
result = (tmp_j * tmp_o * x2_num) % mod
print(int(result))