尾递归矢量和

这个问题在这里已经有了答案:

  • 什么是尾递归? 23个答案

  • 您的解决方案有两个主要问题:

  • 结果不累计 - 只需调用vectorSum函数而不考虑先前调用的结果。
  • 每次递归调用都不会减少问题的大小。
  • 有几种方法来实现这种递归,我建议采用以下方法:

    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
    
    链接地址: http://www.djcxy.com/p/14165.html

    上一篇: Tail recursive vector sum

    下一篇: Another Coder Confused by Recursion