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循环写出斐波那契数列
  • 相关阅读:
    Mybatis学习随笔3
    Mybatis学习随笔2
    Mybatis学习随笔
    Java校招面试-什么是线程安全/不安全
    装饰器2
    装饰器
    默认传参的陷阱
    处理日志文件
    第二天
    用户登录
  • 原文地址:https://www.cnblogs.com/chrischan/p/6654290.html
Copyright © 2011-2022 走看看