分奇偶考虑,偶数个需要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))



京公网安备 11010502036488号