html 高手来啊 script 的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:26:22
<script type="text/javascript" language="JavaScript">

function fib(n){
if(n==0 || n==1)
return n;
if(n>=2)
return fib(n-1) + fib(n-2);
if(n<0)
return "输入错误!!";

}

function show()
{
var num = document.MyForm.txtInput.value;

fib(num);
}
</script>

<input type="text" name="txtInput" align="left" height="24" />

<input name="btnInput" type="button" value="显示计算结果" onclick="alert(show())" />

为什么提示我未定义呢??错哪里
顺便解释下
if(n>=2)
return fib(n-1) + fib(n-2);
这个你要是输入个大数估计你的IE就卡死了~循环次数过多~

怎么解决呢??

function show()
{
var num = document.all.txtInput.value;

return fib(num);//你没有返回值,当然未定义拉
}

PS 不了解你要实现什么目的fib(n-1) + fib(n-2);
最终返回的不就是1或0么?没有别的算法?

function show()
{
var num = document.getElementById("txtInput").value;
return fib(num);
}

1、你的MyForm不存在
2、return fib(num); 不然得不到返回值
3、
if(n>=2)
return fib(n-1) + fib(n-2);
这个你要是输入个大数估计你的IE就卡死了~循环次数过多~