每组测试数据占1行,包括一个正整数b(1 <= b <= 92)
输出有n行,每行输出对应一个输入。输出应是一个正整数,是对应于b的皇后串。
1 92
15863724 84136275
def findAllResult(row): global results global tempPos if row == 9: tmp = "" for i in range(1,9): tmp += str(tempPos[i]) results.append(tmp) else: for i in range(1,9): #这个循环是寻找放在当前行row的合适皇后位置 tempPos[row] = i flag = True for j in range(1,row): #检查是否不在同一列或者斜线上 if tempPos[row] == tempPos[j] or row - j == abs(tempPos[row] - tempPos[j]): flag = False break if flag: #如果放在该行位置不影响前面行的皇后则寻找下一行 findAllResult(row+1) #走到最后又会回来这里继续for循环 while True: try: num = int(input()) results = [] #保存着全部92种结果 tempPos = list(range(9)) #临时存放着每一行皇后的位置 findAllResult(1) results.sort() print(results[num-1]) except Exception: break