python
def fun(x, char):
if x > 0:
if int(char[-2]) == int(char[-1]) ^ 0:
fun(x - 1, char + "0")
if int(char[-2]) == int(char[-1]) ^ 1:
fun(x - 1, char + "1")
else:
lens = len(char)
lists = list(map(int, list(char)))
flag = True
for i in range(lens-3,lens):
if lists[i] != lists[(i + 1) % lens] ^ lists[(i + 2) % lens]:
flag = False
break
if flag:
global sums
print(lists)
sums += lens - sum(lists)
ans = []
nums = int(input()) # 输入数据组数
for i in range(nums):
sums = 0
n = int(input()) # 输入人数n>=3
fun(n - 3, "000")
fun(n - 3, "011")
fun(n - 3, "101")
fun(n - 3, "110")
ans.append(sums)
for i in ans:
print(i)
未优化代码
def fun(x, char):
if x > 0:
fun(x - 1, char + "0")
fun(x - 1, char + "1")
else:
lens = len(char)
lists = list(map(int, list(char)))
flag = True
for i in range(lens):
if lists[i] != lists[(i + 1) % lens] ^ lists[(i + 2) % lens]:
flag = False
break
if flag:
global sums
# print(lists)
sums += lens - sum(lists)
ans = []
nums = int(input()) # 输入数据组数
for i in range(nums):
sums = 0
n = int(input()) #输入人数n>=3
fun(n-3, "000")
fun(n-3, "011")
fun(n-3, "101")
fun(n-3, "110")
ans.append(sums)
for i in ans:
print(i)