2012-01-27 141 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遞歸函數應該類似。