多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
针对每行输入,输出用“*”组成的X形图案。
5
* * * * * * * * *
6
* * * * ** ** * * * *
import sys while True: try: num=int(sys.stdin.readline().strip()) c=(num-1)/2 for i in range(num): ret='' for j in range(num): if abs(c-i)==abs(j-c): ret+="*" else: ret+=" " print(ret) except: break
class Solution : def __init__(self,n) : self.n = n self.O = [] self.k = False def output(self) : self.O = [' ' for i in range(n)] self.O[0],self.O[n - 1] = '*','*' try : for j in range(self.n) : print(''.join(self.O)) if self.k : self.O[self.n - j] = '*' self.k = False self.O[j + 1],self.O[j] = self.O[j],self.O[j + 1] if j + 1 == int(self.n / 2) and self.n % 2 != 0 : self.O[self.n - j - 1] = ' ' self.k = True continue self.O[self.n - j -1],self.O[self.n - j - 2] = self.O[self.n - j - 2],self.O[self.n - j -1] except : return while True : try : n = int(input()) s = Solution(n) s.output() except : break