我们如何在python中使用递归来编写获取完整乘法表的代码[已关闭]

6ioyuze2  于 2023-01-01  发布在  Python
关注(0)|答案(4)|浏览(152)

13小时前关门了。
Improve this question
enter image description here: Now what we need to change to get the full multiplication table using recursion in one go.
我试图得到完整的乘法表使用递归函数在Python中像2 * 1 = 2到2 * 20 = 200,如果我输入的用户输入是15,我需要多达2至15乘法表在一次去。不要使用循环和循环。

ubof19bj

ubof19bj1#

你可以通过在函数中添加if语句和另一个递归来实现。

# using recursion
def mul_table(N, i):
        if (i > 10):
            if N > 2:
             return mul_table(N-1, i-10)
            else:
                return
        print(N, "*", i, "=", N * i)
        return mul_table(N, i + 1)


N = 15
mul_table(N, 1)

一旦完成第一个表,i的值将大于10。它将再次检查它是否大于2。如果它大于2,它将再次递归,但使用N = N-1。它将运行到N = 2

lkaoscv7

lkaoscv72#

下面是一个使用递归的简单方法。

def mtable(n, m=1):
    if m <= 10:
        print(f'{n} * {m} = {n*m}')
        mtable(n, m+1)

mtable(9)
    • 输出:**
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
9 * 10 = 90
zed5wv10

zed5wv103#

交替递归:

def mul_table(N, i=1):
    print(N, '*', i, '=', N*i)
    if i == 10: N, i = N-1, 0
    N == 1 or mul_table(N,i+1)

mul_table(15)
tuwxkamq

tuwxkamq4#

使用递归:

def table(n, i=1):
  if i > n:
    return
  for j in range(1, n+1):
    print(f"{i} x {j} = {i * j}")
  table(n, i + 1)

我确实使用了for循环,但想不出其他方法。上面的代码将有以下输出:
输入数量

table(3)

输出

相关问题