2014-01-12 43 views
-3

我想修改下面的代碼,將Input更改爲一個指針。 但保留遞歸的功能。如何將函數參數更改爲點?

int FunctionA(int Input) 
{ 
    int Output; 
    if (Input == 1) 
     return 1; 
    if (Input < 1) 
     return -1; 
    Output = Input + FunctionA(Input-1); 
    return Output; 
} 

如何修改代碼?

我試圖修改如下,但我想知道有沒有更好的方法。

int a, Output = 0; 
a = *Input; 
cout << a <<endl; 
for(int i = 0; i < a; i++) 
{ 
    Output = Output + i + 1; 
} 
+2

你嘗試過什麼嗎? –

+1

@Martin Wun:你爲什麼不先在線閱讀指針概念? – Sumeet

+1

你能解釋爲什麼你需要一個指針嗎?這可能會導致更好的答案。 – juanchopanza

回答

1

也許類似下面的內容?

int FunctionA(int *Input) 
{ 
    int Output, InputRec; 
    if (*Input == 1) 
     return 1; 
    if (*Input < 1) 
     return -1; 
    InputRec = *Input - 1; 
    Output = *Input + FunctionA(&InputRec); 
    return Output; 
} 
+0

給男人一條魚...... – qrdl

相關問題