【算法】 斐波那契数列

【算法】 斐波那契数列

        /// <summary>
        /// 递归方式
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int Fn(int n)
        {
            if (Default(n)) return 1;
            return Fn(n - 1) + Fn(n - 2);
        }

        /// <summary>
        /// 循环方式
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int FnFor(int n)
        {
            if (Default(n)) return 1;
            int first = 1;
            int second = 1;
            for (int i = 3; i <= n; i++)
            {
                second = first + (first = second);
            }
            return second;
        }

        /// <summary>
        /// 默认处理
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        private static bool Default(int n)
        {
            if (n <= 0)
            {
                throw new Exception("输入的数字必须是大于0的整数");
            }
            return n <= 2;
        }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。