2012-01-27 35 views
0

私は0から10までの数値を追加する関数と、最初の関数の戻り値を取得して0になるまで減算する関数の2つの関数を記述しています。コールのためにそれらを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

+0

ここで、0から10の数字を追加していますか?あなたの唯一の追加は、インクリメントされたカウンターでの呼び出しです! –

+0

これは宿題ですか? – c69

答えて

1

再帰関数は実際には合計を返しません。 recurse(0)を呼び出すと、10xに再帰しますが、戻り値は0になります。また、aRetを作成していますが、使用されることはありません。以下を試してみてください...

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

あなたのマイナスリカバリ機能は似ているはずです。