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