<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function fun(n){
var t;
if((n==0)||(n==1)){
t=3;
}else{
t=n*fun(n-1);
}
return t;
}
document.write(fun(4));
</script>
</body>
</html>
3 回答
已采纳
水墨流沙
TA贡献19条经验 获得超33个赞
第一次循环是4*fun(3),第二次fun(3)就是3*fun(2),第三次fun(2)就是2*fun(1),第四次fun(1)就是t=3,所以结果就是4*3*2*3=72。没错啊
习惯受伤
TA贡献885条经验 获得超1144个赞
典型的递归函数,其中:
if((n==0)||(n==1)){ t=3; }
这部分没有调用自身的部分称之为“递归出口”,所有递归函数都必须有一个有效的递归出口。下边else部分就是递归调用了。递归的思想就是将复杂的事情简单化。
西兰花伟大炮
TA贡献376条经验 获得超318个赞
因为这是一个递归函数调用,你觉得等于12是因为你认为函数只执行了一次,你就调用了一次,实际上调用了4次,所以是72不奇怪,我也没去验证,但原因是这样的
添加回答
举报
0/150
提交
取消