我怎样才能写出我的伪代码的递归函数?

时间:2013-04-11 21:00:07

标签: java discrete-mathematics

实际代码更容易,但我也无法找到基本情况。我能写出相当不错的伪代码,但我遇到了麻烦。我不知道我是否可以在这里提问作业问题,但这是一个我无法回答的问题:

  

设f(n)为该计算执行的加法次数。   写出f(n)的递推方程。 (注意数量   非递归的加法步骤应该完全相同   和递归版本。事实上,他们都应该做到   相同的添加步骤顺序。)

任何帮助都会很棒,如果我不被允许提问作业问题那么好。

   int sum(int A[], int n ):
     T=A[0];
      for i = 1; to n-1
       T=T+A[i];
        return T;}

2 个答案:

答案 0 :(得分:1)

使用sum函数的以下属性:

   sum(A[], n) == sum(A[], n-1) + A[n]

并考虑到:

   sum(A[], 1) == A[1]

答案 1 :(得分:0)

重写你的变体

   int sum(int A[], int n ):
      if (n > 1){
       T=A[n-1] + A[n-2];
       T += sum(A, n-2) 
      }else{
       if (n > 0) { return A[n -1];}
      }
     return T;
    }