题目 1115: DNA
题目描述
输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。
输入格式
2 3 1 5 4
输出格式
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
找规律
每一行的格式为
若干个空格 + X + 若干个空格 + X(可能没有) + 若干个空格
"{}X{}{}{}".format(
' '*i, # 左边的空格
' '*max(0, a - 2 - 2*i), # 中间的空格可能没有
'' if i == t else 'X', # 这个X可能没有
' '*i, # 右边的空格
)
\(i\in (0,1,2,1,\quad 0,1,2,1,\quad 0,1,2,1,\quad ...)\)
且\(\ 2=t=a//2\)
序列长度为\(\ (a-1)*b+1\)
代码如下
N = int(input())
DNAs = [list(map(int, input().split())) for i in range(N)]
for a,b in DNAs:
t = a // 2
i = 0
di = 1
for _ in range((a - 1) * b + 1):
print("{}X{}{}{}".format(
' '*i,
' '*max(0, a - 2 - 2*i),
'' if i == t else 'X',
' '*i,
))
i += di
if i == t:
di = -1
if i == 0:
di = 1
print()