如何用Python嵌套循环生成无重复的连续递增数字图案?
解决Python嵌套循环生成连续递增数字图案的问题
原代码用r+c计算数字时,每行起始数字未衔接上一行末尾,导致重复。以下两种方法可解决问题:
方法一:计数器累加(直观易懂)
初始化计数器变量,每次打印后递增,保证数字连续无重复:
num = 1 for r in range(1, 5): for c in range(r): print(num, end=" ") num += 1 print()
方法二:数学公式计算(无需额外变量)
第r行的第一个数字是前r-1行的数字总数加1,前r-1行数字总数为等差数列求和结果r*(r-1)//2,结合列偏移量计算每个位置的数字:
for r in range(1, 5): for c in range(r): print(r*(r-1)//2 + c + 1, end=" ") print()
两种方法运行后均会输出目标图案:
1
2 3
4 5 6
7 8 9 10
内容的提问来源于stack exchange,提问作者CoderStack15
相关产品推荐
相关产品推荐

