• 斐波那契数列


    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

    n<=39

    public int Fibonacci(int n) {
             if(n==0){
                return 0;
             }else if(n==1){
                 return 1;
             }else{
                 return Fibonacci(n-1)+Fibonacci(n-2);
             }
       }
    class Solution {
    public  int Fibonacci(int n) {
            if(n == 0)
                return 0;
            if(n == 1)
                return 1;
            int numfn1 = 0, numfn2 = 1;
            int currentnum;
            for(int i=2; i<=n; ++i) {
                currentnum = numfn1+numfn2;
                numfn1 = numfn2;
                numfn2 = currentnum;
            }
            return currentnum;
        }
    };
    public class Solution {
        public int Fibonacci(int n) {
            //方法1:用递归,系统会让一个超大的n来让Stack Overflow,所以
            //递归就不考虑了
             
            //使用迭代法,用fn1和fn2保存计算过程中的结果,并复用起来
            int fn1 = 1;
            int fn2 = 1;
             
            //考虑出错情况
            if (n <= 0) {
                return 0;
            }
            //第一和第二个数直接返回
            if (n == 1 || n == 2) {
                return 1;
            }
     
            //当n>=3时,走这里,用迭代法算出结果
            //这里也说明了,要用三个数操作的情况,其实也可以简化为两
            //个数,从而节省内存空间
            while (n-- > 2) {
                fn1 += fn2;
                fn2 = fn1 - fn2;
            }
            return fn1;
        }
    }
  • 相关阅读:
    基于jquery的web在线流程图设计器gooFlow
    angularJS学习笔记二
    angularJS学习笔记一
    JavaScript作用域链详解
    图片查看器(可拖拽,缩放,轮播)
    小议window.event || ev
    Vue安装准备工作
    让VS2013添加新类时自动添加public关键字
    win10太垃圾,真的不好用。
    Bind 和 ScaffoldColumn[转]
  • 原文地址:https://www.cnblogs.com/wxw7blog/p/7257845.html
Copyright © 2020-2023  润新知