A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

法1: static void Main(string[] args)
        {  
            Console.WriteLine(Foo(30));
            Console.ReadKey();
        }
        public static int Foo(int i)
                {
                if (i <= 0)
                return 0;
                else if(i > 0 && i <= 2)
                return 1;
                else return Foo(i -1) + Foo(i - 2);
                }

法2 :
       //前二数的和就是下一个数。
       int sum1 = 13;   //第一个数也可以是8
            int sum2 =21;   //第二个数也可以变成13
            int sum = 0;
            for (int i =9; i <= 30; i++)  //相应的i值也要减少
            {
                sum = sum1 + sum2;   //得到后面的数
                sum1 = sum2;            //将之和前面的数交换
                sum2 = sum;
            }
            Console.WriteLine(sum);
            Console.ReadKey();



问题:有没有办法把第二种办法也能变得活性。不只限制在第30个数

1 个回复

倒序浏览
BigInteger
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马