2016-11-23 60 views
-2

我有一个递归函数,我把它称为acc。如果特定条件满足,我再次调用该函数。如果不是,我想向变量a添加一个数字。递归函数求和

在我看来,它不应该如此。有人可以看看这个:

double acc(v) 
{ 
    double a = 0; 
    for(int q=0; q<v; q++) 
    { 
      if(bf(q) < 1) 
      { 
       if(ef() == 0) 
       {   
        a += cf(); 
       } 
       else 
       { 
        a += df(); 
       } 
      } 
      else 
      { 
       return a += acc(v); 
      } 
    } 
    return a; 
} 

我试图尽可能简化它。 v是一个变量。 bf(),cf(),ef()df()是返回整数值的函数。现在我希望a在整个递归过程中每次满足特定条件时都会递增。我的代码是我想要的吗?我目前没有看到它。

+1

什么是Leaf? –

+0

你是什么意思“我的代码是我想要的”?我们如何知道,测试它调试等等。 – SenselessCoder

+1

我们不知道它做了什么,或者应该做什么。请发布显示问题的[Minimal,Complete和Verifiable示例](http://stackoverflow.com/help/mcve)。显示输入,预期输出和实际输出的一些示例。你的意见是否延伸到重要事实? –

回答

1

你的问题是在递归函数中定义了a。如果你想计算递归内部的事件,在acc()之外声明一个。

+0

递归调用的结果被添加到'a'并返回。 'a'也可以通过'cf()'和'df()'的结果递增。没有必要让'a'全局地进行递归工作。 – Ray