2014-01-12 2 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

Смежные вопросы