<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
!<asp:Button ID="Butto
n1" runat="server" onclick="Button1_Click" Text="=" />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
PRotected void Button1_Click(object sender, Event
args 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);
}
}
的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。