2012-01-27 142 views
0

我正在写一个递归函数,它有两个函数,一个用于添加0到10之间的数字,然后另一个用于检索第一个函数返回值,并将其减去直到达到0为止。虽然,我的代码只添加他们10个电话。有人可以点亮一些光。谢谢。递归函数C++

#include <iostream> 
#include <fstream> 
using namespace std; 

static int recurse(int count) 
{ 

    cout << count << "\n"; 

    if (count < 10) 
    { 
     recurse(count + 1); 
    } 

    int aRet = count; 
    return count; 
} 

static int minusRecusive(int minus) 
{ 

    recurse(1); 
    cout << "\n\t" << minus; 
    int a =0; 
    minus = recurse(a); 

    if (minus < 1) 
    { 
     recurse(minus - 1); 
    } 

    return minus; 
} 


int main() 
{ 
    minusRecusive(1); 
    cin.get(); 
} 
+2

你对此有什么实际问题? – Jesper 2012-01-27 15:26:35

+0

你在哪里添加从0到10的数字?您唯一的补充就是带有递增计数器的呼叫! – 2012-01-27 15:28:20

+0

这是功课吗? – c69 2012-01-27 15:29:20

回答

1

您的递归函数实际上并未返回总和。如果你调用recurse(0),它会递归到10x,但你的返回值仍然是0.另外,你正在创建一个RET,但它从来没有使用过。请尝试以下操作...

if (count < 10) return count + recurse(count + 1); 
return count; 

您的minus递归函数应该类似。