shanhong2021 发表于 2021-7-9 22:35:12

用递归打了个九九乘法表是倒的有简单方法正过来吗?

我递归总是不是很明白就想办法找机会练习。打了个九九乘法表,结果是倒的。看看大家有什么简单的方法能让它正过来。
def fun(row, col):
    for row in range(1,col+1):
      print('%d*%d=%d' % (row, col, row * col), end='\t')
    print()
    if row == 1:
      return
    fun(row-1,col-1)
fun(9,9)
输出:
1*9=9        2*9=18        3*9=27        4*9=36        5*9=45        6*9=54        7*9=63        8*9=72        9*9=81       
1*8=8        2*8=16        3*8=24        4*8=32        5*8=40        6*8=48        7*8=56        8*8=64       
1*7=7        2*7=14        3*7=21        4*7=28        5*7=35        6*7=42        7*7=49       
1*6=6        2*6=12        3*6=18        4*6=24        5*6=30        6*6=36       
1*5=5        2*5=10        3*5=15        4*5=20        5*5=25       
1*4=4        2*4=8        3*4=12        4*4=16       
1*3=3        2*3=6        3*3=9       
1*2=2        2*2=4       
1*1=1       

Twilight6 发表于 2021-7-9 22:37:33


if 和递归提到 for 循环之前,条件改为 row == 0 即可,参考代码:

def fun(row, col):
    if row == 0:
      return
    fun(row-1,col-1)
    for row in range(1,col+1):
      print('%d*%d=%d' % (row, col, row * col), end='\t')
    print()

fun(9,9)

shanhong2021 发表于 2021-7-9 22:42:32

神速回复啊谢谢。{:5_101:}

shanhong2021 发表于 2021-7-9 22:45:34

原来是把代码顺序倒倒就好了啊。递归就是一知半解。搞不懂。谢谢。学到了。
页: [1]
查看完整版本: 用递归打了个九九乘法表是倒的有简单方法正过来吗?