直接模拟,用二维数组表示球桌,坐标越界时先判断是否离开球桌,若未离开改变行进方向和符号(符号只会在正反斜杠间交替)。
最终代码有11行。
代码长度:278字节 vs. 全站第一:148字节。
import sys
s="\\/"
for a in sys.argv[1:]:
m,n=map(int,a.split());b=[[" "]*n for i in range(m+1)];u=v=1;x=y=c=0
while 1:
b[x][y]=s[c];x+=u;y+=v;p,q=0<=x<m,0<=y<n
if p==q==0:break
if 1-p:u=-u;x+=u
if 1-q:v=-v;y+=v
if 2-p-q:c=1-c
print("\n".join("".join(r)for r in b))
|