你 num = 2 * n -3 和 b = (num - (n-2) * 2) 公式不太标准
标准公式应该是
num = 2 * n -1 和 b = (num - (n-1) * 2)
def print_angle2(n:int):
num = 2 * n -1
while n > 0:
print("{:<{a}}{:*<{b}}".format("","",a = n, b = (num - (n-1) * 2)))
n -= 1
比如n = 4 画4行等腰三角形
* 第1行1个*号
*** 第2行3个*号
***** 第3行5个*号
******* 第4行7个*号
num 是最后一行*号的个数 2 * n -1 等于 7
b 是每行*号的个数, n会从4 循环到 1
第1次n=4 , num - (n-1) * 2 等于 7 - (4-1) * 2 等于 1 ,输出1个*号
第2次n=3 , num - (n-1) * 2 等于 7 - (3-1) * 2 等于 3 ,输出3个*号
第3次n=2 , num - (n-1) * 2 等于 7 - (2-1) * 2 等于 5 ,输出5个*号
第4次n=1 , num - (n-1) * 2 等于 7 - (1-1) * 2 等于 7 ,输出7个*号
你 num = 2 * n -3 和 b = (num - (n-2) * 2) 公式
只是把被减数num少2, 把n少1再*2等同减数也少2
被减数和减数都少2 结果不变,只是公式更难理解了
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!