2017-11-30 3 views
-4

재귀에 대해 배우고 뭔가를 입력하고 동일한 문자열을하지만 역수를 제공하지만 논리를 찾을 수없는 함수를 만들고 싶습니다.재귀를 사용하는 방법을 알아 내려고 C#

public static string Reverse(string text, int textlength) 
    { 
     if (textlength== 0) 
     { 
      return text.ElementAt(textlength).ToString(); 
     } 
     else 
     { 
      return Reverse(text, textlength - 1); 
     }   
    } 

재귀를 사용하여 어떻게 할 수 있습니까?

+2

'text.ElementAt (-1)'이 (가) 반환 할 것으로 예상되는 내용은 무엇입니까? – NetMage

+0

은 단어가 "문자"라고 가정하고 첫 번째 문자를 반환해야한다고 가정합니다. 마지막 반복으로 "l"을 반환합니다. –

+0

@JavierSalas sooooo는이 방식으로 작동합니까? –

답변

1

재귀는 항상 기본 케이스와 재귀 케이스의 두 가지 경우입니다.

기본 경우는 문자열이 0 또는 1 문자 인 경우입니다. 역방향은 전달 된 것이므로 text을 반환합니다.

재귀 케이스는 text이 1 문자보다 길 때 자체적으로 연산을 정의해야합니다. 이 경우, 문자열의 반대는 나머지 문자열과 첫 번째 문자가 뒤 이은 것입니다.

public static string Reverse(string text) { 
    if (text.Length <= 1) // base case 
     return text; 
    else // recursive case 
     return Reverse(text.Substring(1))+text.Substring(0, 1); 
} 
관련 문제