zoukankan      html  css  js  c++  java
  • js写出斐波那契数列

    斐波那契数列:1、1、2、3、5、8、13、21、34、……

    函数:

    使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。

    for循环:

    从底层向上运算, 

    a(0)+a(1)->a(1) //第0个数字+第1个数字=第2个数字
    a(1)+a(1)->a(2) //第1个数字+第2个数字=第3个数字
    a(2)+a(3)->a(5) //第2个数字+第3个数字=第4个数字
    ······
    a(n-1)+a(n-2)->a(n)

    因此,在循环中只要定义三个变量,便能将最后的f(n)求出来

    function fn(n){
    if(n==1|n==2){
    return 1;}
    //因为斐波那契数列格式为:1、1、2、3、5、8、13、21、34、......,n=1和n=2的时候都是输出1
    return fn(n-1)+fn(n-2);
    //不断调用自身函数,n-1是穿进去的参数的前一次,就是最后n的前一个数字。所以n-2是最后传入参数的前两个数字。
    }
    //用函数写出斐波那契数列
    
    var n=parseInt(prompt('请输入一个数字'));
    var a1=1;
    var a2=1;
    var a3=0;
    for(var i=2;i<=n;i++){//因为前两个数都是1,所以要从i=2开始,就是前两个数的1+1=2,i的初始值其实是第三个数
    a3=a1+a2;//第三个数等于第一个数加上第二个数
    a1=a2;//第一个数就变成了之前的第二个数
    a2=a3;//第二个数就变成了刚刚的第三个数
    }
    console.log(a3);
    //使用for循环写出斐波那契数列
  • 相关阅读:
    顺序栈用C语言实现
    对队列的操作和算法
    对链表的操作与算法
    对动态数组的操作与算法
    链表
    冒泡排序
    指针之动态分配内存
    字符串匹配KMP算法
    DS二叉树--层次遍历
    DS图--最小生成树
  • 原文地址:https://www.cnblogs.com/chrischan/p/6654290.html
Copyright © 2011-2022 走看看