Recursion 需要帮助查找示例/说明吗

Recursion 需要帮助查找示例/说明吗,recursion,Recursion,通过一些练习,我的书对说明解决方案没有多大帮助。有谁能给我指出正确的方向,或者帮我分析一下这里发生了什么 需要递归函数来建模: 当n%2=0时,T(n)=n 当n%2=1时,T(n)=2+T(n-1) 谢谢 下面是一段python代码: function T(n) { if(n%2 == 0) return n; else if(n%2 == 1) return 2 + T(n-1); } So lets say you use 3, th

通过一些练习,我的书对说明解决方案没有多大帮助。有谁能给我指出正确的方向,或者帮我分析一下这里发生了什么

需要递归函数来建模:

当n%2=0时,T(n)=n

当n%2=1时,T(n)=2+T(n-1)

谢谢

下面是一段python代码:

function T(n) 
{
    if(n%2 == 0) 
        return n;
    else if(n%2 == 1)
        return 2 + T(n-1);
}


So lets say you use 3, then the function enters check 3%2 that's not 0 so it pases to the     else
which now has 3/2 and that returns the following:
function T(3) 
{
    if(n%2 == 0) 
        return n;
    else if(n%2 == 1)
        return 2 + T(n-1); // T(3-1) = T(2)
} 
This here would be equivalent to calling the same function
but now with a 2 instead of a 3 and the return statement would then be added to the 
original 2 and so on, I hope I explained a bit.
function T(2) 
{
    if(n%2 == 0) 
        return n;
    else if(n%2 == 1)
        return 2 + T(n-1);
} 
def rec(n):
    if n%2 == 0:
        return n;
    else: # if n%2 == 1
        return 2 + rec(n-1)

print(rec(9)) # 10
print(rec(10)) # 10
print(rec(11)) # 12
print(rec(12)) # 12

但问题在哪里?顺便说一下,它不是真正的递归函数,因为函数被“递归地”最多调用一次

您的示例不适合递归,因为当
n
为偶数时,它只返回
n
,当n为奇数时,它只返回
n+1
。最好的递归示例是找到一个数字的阶乘。alvits-谢谢或洞察。我将对此进行研究。
T(n)
通常用于表示函数处理大小问题的时间量
n
。你确定你没有误解这本书及其练习的要求吗?看似简单。谢谢你的帮助!我需要更多的例子-递归仍然有点让我费解。+1是为了给出一个简单易懂的解释。+1这正是我在对OP的评论中提到的。当
n
为偶数时,它返回
n
,当
n
为奇数时,它返回
n+1
。但对于初学者来说,给出一个简单的例子是一个很好的开始。我很困惑,所以我很高兴你们中的一些人发现了这个例子的问题。我将在堆栈溢出上花费更多的时间来补充我的研究。再次感谢!