我在我的智慧結束......我理解遞歸的更簡單的例子,但當我變得棘手時,我沒有線索。這是一個例子。如果有人能說出它的作用,我會很高興。什麼是編譯器做...遞歸 - 它做什麼
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;
}
什麼時候該方法被調用打印: 謎( 「fredpass」,5,1)
答案是passps
我不沒有CLUE他們是如何到達那裏的......
如果有人能幫助我處理這件事情,我會非常感激。在互聯網上的其他地方,他們只解釋階乘 - 簡單的例子。不知道會發生什麼,如果你把它叫做char first = mystery (blah);
兩次,然後再次char second = mystery (blah);
那麼,這種方法的意圖是什麼呢?但它是如何工作的就像其他任何形式的遞歸一樣。 – 2011-03-15 12:58:13
這條線是否正確? 'char second = mystery(s,n/s,m * 2 +1);'當試圖用一個字符串除n時,'n/s'部分是否會通過編譯錯誤? – justkt 2011-03-15 12:59:01
這些數字對我來說沒有意義。爲什麼你有'n/s'而不是'n/2'? – 2011-03-15 13:00:44