저는 재치가 있습니다 ... 재귀의 쉬운 예를 이해 합니다만, 까다로워지면 단서가 없습니다. 다음은 그 예입니다. 누군가가하는 일을 말할 수 있다면 기쁠 것입니다. 컴파일러가 할 무엇을 ...재귀 - 무슨 일을합니까
public static char mystery(String s, int n, int m)
{
if (n==1) return s.charAt(m);
char first = mystery(s, n/2, m*2);
char second = mystery(s, n/2, m*2 +1);
System.out.print(first + " " + second + " ");
return first;
}
어떤 메소드가 호출 될 때 인쇄
: (1 "fredpass", 5)
대답은이 passps 신비
I 돈 그들이 어떻게 거기에 도착하는지 CLUE가 있습니다 ...
누군가가이 문제에 대해 저를 도울 수 있다면 정말 감사하겠습니다. 인터넷의 다른 곳에서 그들은 단지 계승의 쉬운 예를 설명합니다. char first = mystery (blah);
에서와 같이 두 번 호출하면 다시 발생합니다. char second = mystery (blah);
음으로 진행해야한다,이 방법의 의도가 무엇인지 신비이다.그러나 어떻게 작동하는지는 다른 형태의 재귀가 작동하는 것과 같습니다. –
이 줄이 맞습니까? '문자열을 n으로 나눌 때 컴파일 에러로'n/s' 부분을 쓰지 않겠습니까? – justkt
숫자가 맞지 않습니다. 왜 'n/2'대신에 'n/s'를 사용합니까? –