用循环和递归得到兔子数列

        /// <summary>
        /// 循环得到和
        /// </summary>
        /// <param name="num">第几个数</param>
        /// <returns></returns>
        private int GetSum_2(int num)
        {
            int num_1 = 1;//默认值
            int num_2 = 1;//默认值
            if (num == 1 || num == 2)
            {
                return 1;
            }
            int temp;
            // 1,1,2,3,5,8,13,21,34
            // 1,2,3,4,5,6,7  ,8   ,9
            for (int i = 2; i < num-1; i++)
            {
                // 将第二个数的值赋值给第一个数,把第一个数和第二个数的和赋值给第二个数
                temp = num_2;
                num_2 = num_1 + num_2;
                num_1 = temp;
            }
            return num_1 + num_2;//得到两个数的和
        }

        /// <summary>
        /// 递归得到和
        /// </summary>
        /// <param name="num">第几个数</param>
        /// <returns></returns>
        private int GetSum(int num)
        {
            // 1,1,2,3,5,8,13,21,34
            // 1,2,3,4,5,6,7  ,8   ,9
            if (num == 1)
            {
                return 1;
            }
            else if (num == 2)
            {
                return 1;
            }
            else
            {
                return GetSum(num - 1) + GetSum(num - 2);
            }
        }


上面两个方法就是用循环和递归得到兔子数列的值:

递归很简单就是自己调用自己;

然后循环的思路就是初始的时候给两个变量赋初始值,然后不停的更新它的值。

posted @ 2012-12-11 17:13  下-个路口  阅读(508)  评论(0编辑  收藏  举报