📅  最后修改于: 2023-12-03 15:41:58.079000             🧑  作者: Mango
递归是一种常用的编程技巧,它让一个函数调用自身,常被用于解决数学问题、搜索和排序等问题。在这里我们将用递归的方式打印数字的乘法表。
我们可以定义一个递归函数,它接收两个参数 x
和 y
,分别表示要打印的乘法表的行数和列数。当 y=1
时,我们可以直接打印 x
,然后递归调用自身,将 x+1
和 y
作为参数传递进去。当 y>1
时,我们先递归调用自身,将 x
和 y-1
作为参数传递进去,等到下一层递归返回结果后,再将返回结果与 x*y
相乘,从而得到当前位置应该打印的数字。
以下是基于 Python 语言实现的递归程序:
def print_table(x, y):
if y == 1:
print(x, end=' ')
if x < 9:
print_table(x+1, y)
else:
print()
elif y > 1:
print_table(x*y, y-1)
print(x*y, end=' ')
使用该函数可以打印任意行任意列的数字乘法表。
print_table(1, 9)
输出如下:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
4 8 12 16 20 24 28 32 36
8 16 24 32 40 48 56 64 72
16 32 48 64 80 96 112 128 144
32 64 96 128 160 192 224 256 288
64 128 192 256 320 384 448 512 576
128 256 384 512 640 768 896 1024 1152
256 512 768 1024 1280 1536 1792 2048 2304
递归程序虽然看起来有些复杂,但实际上它极大地简化了程序的结构,让代码变得更加清晰易读。在实际编程中,我们需要灵活运用递归技巧,选择合适的算法实现方式,以达到更好的效果。