前台:
復制代碼 代碼如下:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
!<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="=" />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
後台:
復制代碼 代碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
int data = Convert.ToInt32(this.TextBox1.Text.Trim());//data為大於等於0的整數
this.TextBox2.Text = jieCheng(data).ToString();
}
private static int jieCheng(int data)
{
if (data == 0) //在這裡需要考慮0和1的階乘都為1,所以data==0的時候要返回1.
{
return 1;
}
else
{
return data * jieCheng(data - 1);
}
}
遞歸算法解決問題的特點:
(1) 遞歸就是在過程或函數裡調用自身。
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。
(3) 遞歸算法解題通常顯得很簡潔,但遞歸算法解題的運行效率較低。所以一般不提倡用遞歸算法設計程序。
(4) 在遞歸調用的過程當中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。