各位高手:请帮小弟解答一下下面的js代码,这段代码是计算n个数的平方和的递归函数,并返回每一次的递归值:
<html>
<head>
<title></title>
<script language="javascript">
<!--
function sumn(n)
{
document.write("<b>进入下层递归--n的当前值为:"+n+"</b><br>");
if(n==1)
{
return 1;
}
else
{
(n*n+sumn(n-1));
}
document.write("<b>进入上层递归--n的当前值为:"+n+"</b><br>");
}
//-->
</script>
</head>
<body bgcolor="lightblue">
<script language="javascript">
<!--
var userinput = eval(prompt("请输入n的值(1-10):",""));
sumn(userinput);
//-->
</script>
</body>
</html>
代码的执行结果为:
进入下层递归--n的当前值为:5
进入下层递归--n的当前值为:4
进入下层递归--n的当前值为:3
进入下层递归--n的当前值为:2
进入下层递归--n的当前值为:1
进入上层递归--n的当前值为:2
进入上层递归--n的当前值为:3
进入上层递归--n的当前值为:4
进入上层递归--n的当前值为:5
前面的进入下层递归的值小弟还明白,但是上层递归的值是怎么算出来的小弟就不明白了,也就是这一句:document.write("<b>进入上层递归--n的当前值为:"+n+"</b><br>");小弟是初学者,还望各位高手多多指教,小弟感激不尽!
<html>
<head>
<title></title>
<script language="javascript">
<!--
function sumn(n)
{
document.write("<b>进入下层递归--n的当前值为:"+n+"</b><br>");
if(n==1)
{
return 1;
}
else
{
(n*n+sumn(n-1));
}
document.write("<b>进入上层递归--n的当前值为:"+n+"</b><br>");
}
//-->
</script>
</head>
<body bgcolor="lightblue">
<script language="javascript">
<!--
var userinput = eval(prompt("请输入n的值(1-10):",""));
sumn(userinput);
//-->
</script>
</body>
</html>
代码的执行结果为:
进入下层递归--n的当前值为:5
进入下层递归--n的当前值为:4
进入下层递归--n的当前值为:3
进入下层递归--n的当前值为:2
进入下层递归--n的当前值为:1
进入上层递归--n的当前值为:2
进入上层递归--n的当前值为:3
进入上层递归--n的当前值为:4
进入上层递归--n的当前值为:5
前面的进入下层递归的值小弟还明白,但是上层递归的值是怎么算出来的小弟就不明白了,也就是这一句:document.write("<b>进入上层递归--n的当前值为:"+n+"</b><br>");小弟是初学者,还望各位高手多多指教,小弟感激不尽!
当n等于1时,就只执行第一个document.write;
然后执行这句:document.write(" <b>进入上层递归--n的当前值为:"+n+" </b> <br>");
自然输出n就是2了
以此类推,执行完n=2这次的递归之后,再返回到上层递归,n=3了就
......
最后n=5