我有这个递归定义:
对该函数的第一次调用是picopala(v.length-1, v)
,v
是一个整数数组。
我需要将该定义转换为迭代算法,但我不能,我不知道如何实现它。那么,拜托,有人可以帮助我吗?
答案 0 :(得分:1)
要创建一个迭代解决方案,让我们“转过身来”并从零开始工作。
让我们将picopala(j, V)
的值存储在P[j]
。
P[0] = V[0]
P[1] = 2*V[1]
P[2] = P[0] * P[1] + V[1]
P[3] = P[1] * P[2] + V[2]
P[4] = P[2] * P[3] + V[3]
...
P[n] = P[n-2] * P[n-1] + V[n-1]
现在很容易实现循环。
答案 1 :(得分:0)
Recursion
非常适合这里。
假设你可以使用递归,你可以试试这样的
public int picopala(int length,int[] arr)
{
//base conditions
if(length == 0)
return arr[0];
if(length == 1)
return arr[1]*2;
return picopala(length-2,arr)*picopala(length-1,arr)+arr[length-1];
}