(小白)js关于斐波那契递归不递归的方法调用怎么错了?
1.这是递归的<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>斐波那契递归</title>
<script>
function fib(i) {
if (i == 1 || i == 2) {
return 1;
} else {
return fib + fib;
}
}
fib(10);//调用第十项
</script>
</head>
<body>
</body>
</html>
2.这是不递归的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>斐波那契不递归</title>
<script>
function fib(n) {
var f1 = 1,
f2 = 1,
f3;
for (var i = 3; i <= n; i++) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
fib(10);//调用第十项
</script>
</head>
<body>
</body>
</html>
这两个方法运行后出现空白,什么也没有为什么呀,我也去网上找了,也是这么写,但我的第十项就是输不出。
谢谢你的热心解答!!^_^() 我也没看到有输出语句呢?? 真晕,函数后面跟个方括号,也不知道你在哪抄的代码
<script>
function fib(i) {
if (i == 1 || i == 2) {
return 1;
} else {
return fib(i - 1) + fib(i - 2);
}
}
alert(fib(10));
</script> 你这个递归的性能非常差 fib(1000)会直接卡死 我发一个递归版本
function fib(n,a1 = 1,a2 = 1){
if(n==1||n==2){
return a2;
}
return fib(n-1, a2, a1 + a2);
}
{:10_256:} 试了一下 你这个fib(100)就把我卡死了这个递归完全不行 wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码
难道调用时候不一起输出的? kogawananari 发表于 2021-4-21 13:39
你这个递归的性能非常差 fib(1000)会直接卡死 我发一个递归版本
如果只输出10呢?
还有那个n是可以后面调用时候赋值是吗? wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码
对哄,我函数体里面也没输出,调用也没输出,傻了{:10_284:} kogawananari 发表于 2021-4-21 13:39
你这个递归的性能非常差 fib(1000)会直接卡死 我发一个递归版本
谢谢提醒啦,因为我们那个例题样本是这么写的,我就试试{:10_269:} Cathy-Chen258 发表于 2021-4-25 00:01
难道调用时候不一起输出的?
所有编程语言调用函数时都是用小括号,没有用中括号的,中括号后面一般跟索引一类的 wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码
对,我发现那个()写出[]
页:
[1]