Cathy-Chen258 发表于 2021-4-21 11:27:12

(小白)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>

这两个方法运行后出现空白,什么也没有为什么呀,我也去网上找了,也是这么写,但我的第十项就是输不出。

谢谢你的热心解答!!^_^()

wp231957 发表于 2021-4-21 12:07:12

我也没看到有输出语句呢??

wp231957 发表于 2021-4-21 13:31:00

真晕,函数后面跟个方括号,也不知道你在哪抄的代码

<script>
      function fib(i) {
            if (i == 1 || i == 2) {
                return 1;
            } else {
                return fib(i - 1) + fib(i - 2);
            }
      }
      alert(fib(10));
    </script>

kogawananari 发表于 2021-4-21 13:39:08

你这个递归的性能非常差 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:}

kogawananari 发表于 2021-4-21 13:44:21

试了一下 你这个fib(100)就把我卡死了这个递归完全不行

Cathy-Chen258 发表于 2021-4-25 00:01:32

wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码

难道调用时候不一起输出的?

Cathy-Chen258 发表于 2021-4-25 00:03:56

kogawananari 发表于 2021-4-21 13:39
你这个递归的性能非常差 fib(1000)会直接卡死   我发一个递归版本

如果只输出10呢?
还有那个n是可以后面调用时候赋值是吗?

Cathy-Chen258 发表于 2021-4-25 00:08:39

wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码

对哄,我函数体里面也没输出,调用也没输出,傻了{:10_284:}

Cathy-Chen258 发表于 2021-4-25 00:12:33

kogawananari 发表于 2021-4-21 13:39
你这个递归的性能非常差 fib(1000)会直接卡死   我发一个递归版本

谢谢提醒啦,因为我们那个例题样本是这么写的,我就试试{:10_269:}

wp231957 发表于 2021-4-25 07:07:05

Cathy-Chen258 发表于 2021-4-25 00:01
难道调用时候不一起输出的?

所有编程语言调用函数时都是用小括号,没有用中括号的,中括号后面一般跟索引一类的

Cathy-Chen258 发表于 2021-4-26 11:17:37

wp231957 发表于 2021-4-21 13:31
真晕,函数后面跟个方括号,也不知道你在哪抄的代码

对,我发现那个()写出[]
页: [1]
查看完整版本: (小白)js关于斐波那契递归不递归的方法调用怎么错了?