algorithm - 用迭代代替递归

标签 algorithm recursion iteration

我有一个递归函数,我需要将其转换为迭代函数,但我被卡住了。谁能帮助我或指出正确的方向?

f :: Int -> Int
f(0) = 5
f(1) = 8
f(2) = 3
f(n) = (f(n-3)) * (f(n-1))

干杯

最佳答案

下面的代码片段应该可以解决问题:

int output[1000];
output[0] = 5;
output[1] = 8;
output[2] = 3;

for (int i=3; i < 1000; ++i) {
    output[i] = output[i-3] * output[i-1];
}

奖励:以这种方式非递归地实现您的函数称为动态规划

关于algorithm - 用迭代代替递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29008837/

相关文章:

python - 我将如何迭代地编写这个递归函数?

algorithm - 大 O 型术语,但保持不变

枚举所有可能路径的算法

不进入特定文件夹的 Python walker

java DOM 对象的递归

arrays - "Value of type ' AnyObject ' has no member."..尝试在 Swift 中为数组中的对象赋值时发生错误

javascript - 如何在 map 迭代中获取特定对象键

逻辑表达式的交集算法?

algorithm - 如何证明有向无环图中至少存在一个入度为零的顶点?

java - 使用递归查找给定数组中的最小值