之前漢諾塔的問題用遞歸一直解決不了,今天偶然碰到了一個講解比較好的視頻,就把裏面遞歸講解的內容整理下來,方便理解。
yeah!
爲什麼遞歸需要控制終止條件呢?我們先來看看不控制終止條件的遞歸函數。
void recursion() //這是個用來舉例的函數
{
recursion();
}
運行過程:
具有控制條件的遞歸函數
int i = 0;
void recursion() //這是個用來舉例的函數
{
if(i < 3)
{
i ++;
recursion();
}
}
運行過程:
我們再來看看兩層遞歸函數
int i = 0;
void recursion()
{
if(i < 2)
{
i ++;
recursion();
recursion();
}
}