题目描述
模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。
输入格式
输入矩阵的规模,不超过 9。
输出格式
输出矩形和正方形
个人心得:
其实这是一道很简单的题,也不需要什么算法知识。最开始的时候我没有写print(" "*(n-i)*2,end=’’)这一行语句,导致我输出的三角形一直都是左对齐,我查了很多的资料和博客,我发现它们给出的方法根本解决不了这种情况,然后我就只能通过一个最笨最原始的方法(在数据前先将空格填充完),这样我输出的数据就会边成右对齐的形式。
原始版本:
n = int(input())
#打印正方形
for i in range(1,(n*n)+1):
if i % n ==0:
print("%02d" % i)
else:
print("%02d" % i, end='')
print()
#打印三角形
count = 1
for i in range(1, n+1):
# print(" "*(n-i)*2,end='')
for j in range(1, i+1):
if j == i:
print("%02d" % count)
else:
#print(f"{count:>2*n}")
print("%02d" % count, end='')
count += 1
此时出现的结果就是这个:
这个是能够AC的版本:
n = int(input())
#打印正方形
for i in range(1,(n*n)+1):
if i % n ==0:
print("%02d" % i)
else:
print("%02d" % i, end='')
print()
#打印三角形
count = 1 #保存即将要输出的数
for i in range(1, n+1):
print(" "*(n-i)*2,end='') #为了使输出的数能右对齐
for j in range(1, i+1):
if j == i:
print("%02d" % count)
else:
print("%02d" % count, end='')
count += 1