//第一种写法
var factorial:Function = function (i:uint)
{
if(i == 0) // i 等于 0 时结束递归
{
return 1;
}
else
{
return (i * arguments.callee(i - 1)); //i - 1 后,调用自身并把结果相乘 即5*(5-1)*(4-1)*(3-1)*(2-1)
}
}
trace(factorial(5)); //输出120
///////////////////////////////////////
///////////////////////////////////////
///////////////////////////////////////
//第二种写法
trace(factorial(5)); //输出120
function factorial(i:int):Number
{
//如果i 等于 0 是结束递归
if (i == 0)
{
return 1;
}
else
{
return (i * arguments.callee(i - 1));//i - 1 后,调用自身并把结果相乘 即5*(5-1)*(4-1)*(3-1)*(2-1)
}
}
///////////////////////////////////////
//////////////////////////////////////
递归函数等同于此for循环
var factorial:int = 1;
for (var i:int = 1; i <= 5; i++)
{
factorial *= i;
}
trace(factorial);//输出120