我应该如何编写尾递归函数来计算向量的总和? 该函数需要2个输入参数:向量v和sum。 尾递归意味着函数的最后部分必须调用自身。
我有一个函数应该是什么样子的基本shell,但我不确定如何编写递归部分。
with streams:
str = 1234567890
str = 0987654321
with streams and manual operations:
str = 1234567890
str = 0987654321
对于空向量,该函数返回0的结果,如果向量的长度为1,则返回值v(1)。
答案 0 :(得分:2)
您的解决方案有两个主要问题:
有几种方法可以实现这种递归,我建议采用以下方法:
function result = vectorSum(v)
%takes a vector v and the returns the sum of all elements in the vector
if length(v) == 0
result = 0;
else
result = v(end) + vectorSum(v(1:end-1));
end
end