📌  相关文章
📜  打印所有可以通过将 A 或 B 与 N 相加精确 M 次而获得的数字(1)

📅  最后修改于: 2023-12-03 15:25:45.869000             🧑  作者: Mango

打印所有可以通过将 A 或 B 与 N 相加精确 M 次而获得的数字

在这个问题中,我们需要打印出所有可以通过将两个数A或者B与一个数字N相加M次而得到的结果。

思路

我们可以使用递归的方式来实现这个问题,从最简单的情况开始考虑:

  • 如果M为0,那么我们只能返回数字N。
  • 如果M大于0,那么递归地考虑两种情况:
    • 在本次递归中选择A与N相加。
    • 在本次递归中选择B与N相加。

这样,就可以通过递归调用,在每个递归中考虑A或者B相加的情况,直到M等于0时,打印出结果。

代码实现
def print_numbers(A, B, N, M):
    if M == 0:
        print(N)
        return
    print_numbers(A, B, N+A, M-1)
    print_numbers(A, B, N+B, M-1)
使用示例
print_numbers(3, 5, 1, 3)

输出:

10
12
14
16
18
20
22
24