Skip to main content
 首页 » 编程设计

python之递归解决基本乘法

2025年05月04日16me-sa

我应该编写一个函数来计算给定数量的狗需要的鞋子数量。用乘法可以很容易地完成,但是我们需要使用递归,所以我有

def dogShoes(n): 
    total = 0 
    if n>0: 
        shoes =   n + dogShoes(n) 
        total = total + 1 
        if total == 4: 
            return shoes 

但我现在意识到第 4 行将走向无穷大,而我认为会停止它的底部甚至不会实现。有没有办法说当 total 为 4 时,停止并返回答案而不让 shoes 趋向于无穷大?

请您参考如下方法:

你可以大大简化你的函数:

def dogShoes(n): 
    if n == 0: 
        return 0 
    else: 
        return 4 + dogShoes(n-1) 

由于您必须使用递归而不是仅仅返回 n * 4,您可以简单地将乘法重写为加法(递归)。

多么奇怪的任务...