美文网首页
n*recurrence(n-1)

n*recurrence(n-1)

作者: 神奇的少年 | 来源:发表于2017-03-05 02:13 被阅读0次

前几天被问到一道很简单的阶乘的题目,自己脑抽了一下,居然算少了20....起身走出门口,自己的思维才活过来,都不想说自己多傻了...


先看看题目

function recurrence(n){
  if(n==1){
    return n
  }else{
    return n*recurrence(n-1);
  }
};
alert(recurrence(5));

我当时写的很起劲,大脑短路,居然脑子里像打了断点一样去运行每一步计算,然后写了个100上去......

结果是120....

起身走出去,我才想起来,就是一道简单的阶乘,已经泪目....


1.那就来打个断点吧
(1)5x(5-1)=20
(2)20x(4-1)=60
(3)60x(3-1)=120
(4)120x(2-1)=120
(5)return 120

2.简化公式
5x(5-1)x(4-1)x(3-1)x(2-1)=120

相关文章

  • n*recurrence(n-1)

    前几天被问到一道很简单的阶乘的题目,自己脑抽了一下,居然算少了20....起身走出门口,自己的思维才活过来,都不想...

  • 经典递归函数之学习笔记

    一、阶乘:n * (n-1) * (n-2)... * 1 二、求和:n * n + (n-1) * (n-1)...

  • 数值的整数次方java

    偶数 A(n) = A(n/2) * A(n/2)奇数A(n) = A((n-1)/2) * A((n-1)/2...

  • 排序

    排序 分类 交换类: 冒泡排序:平均时间n(n-1)/2最坏情况n(n-1)/2*快速排序:平均时间n(n-1)/...

  • n&=(n-1)的解析

    式子n&=(n-1)同理为n=n&(n-1)&表示“与”,例如n=10110 ,则n-1=10101相与之后:10...

  • 排序算法-冒泡排序

    时间复杂度:o(n^2),比较总次数为((n-1)+1)*(n-1)/2=n*(n-1)/2 C代码: templ...

  • java学习笔记之递归

    问题一:求n的阶乘:n! = n(n-1)!;n! = n(n-1)(n-2)....32*1; 方案一:便利 方...

  • 卡特兰数

    C(n) = C(0)C(n-1) + C(1)C(n-2) + ... + C(n-1)C(0)或者C(n) =...

  • 2的乘方

    n & (n-1) =0

  • 笔试刷题-腾讯2018-08-18

    题目描述: 思路如下: 用递归思想找规律即可f(n-1)表示n-1个的序列产生f(n)先顺序遍历f(n-1)在头部...

网友评论

      本文标题:n*recurrence(n-1)

      本文链接:https://www.haomeiwen.com/subject/ztlsgttx.html