相关疑难解决方法(0)

递归vs循环

我面临一个问题,即递归和使用循环似乎都是自然的解决方案.对于像这样的案件,是否有惯例或"首选方法"?(显然它不像下面那么简单)

递归

Item Search(string desired, Scope scope) {
    foreach(Item item in scope.items)
        if(item.name == desired)
            return item;

    return scope.Parent ? Search(desired, scope.Parent) : null;
}
Run Code Online (Sandbox Code Playgroud)

Item Search(string desired, Scope scope) {
    for(Scope cur = scope; cur != null; cur = cur.Parent)
        foreach(Item item in cur.items)
            if(item.name == desired)
                return item;

    return null;
}
Run Code Online (Sandbox Code Playgroud)

recursion loops

48
推荐指数
7
解决办法
7万
查看次数

PHP优化尾递归吗?

我编写了一小段代码,如果尾递归被优化,我认为应该成功,但它会炸毁堆栈.我是否应该总结PHP不优化尾递归?

function sumrand($n,$sum) {
    if ($n== 0) {
        return $sum;
    }
    else {
        return (sumrand($n-1,$sum+rand(0,1)));
    }
}
echo sumrand(500000,0)."\n";
Run Code Online (Sandbox Code Playgroud)

php recursion tail-recursion

30
推荐指数
2
解决办法
6871
查看次数

标签 统计

recursion ×2

loops ×1

php ×1

tail-recursion ×1