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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dbqwaii 中级黑马   /  2013-2-26 10:13  /  1366 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1  1  2  3 5 8  13  21 34```` 找出规律

        int a = 1;
            int b = 0;
            int sum = 0;
            for (int i = 0; i < 8; i++)
            {
                sum = a + b;
                b = a;
                a = sum;
                Console.WriteLine(sum);
            }
希望还有其他的方法  谢谢

            Console.ReadKey();

2 个回复

倒序浏览
用递归可以

static void Main(string[] args)
        {
            //求 1 1 2 3 5 8


            //普通方法
            int[] num = new int[10];
            num[0] = 1;
            num[1] = 1;
            for (int i = 2; i < num.Length; i++)
            {
                num[i] = num[i-1] + num[i-2];
            
            }
            Console.WriteLine(num[9]);
            Console.ReadKey();
            //递归
            Console.WriteLine(DiGui(10));
            Console.ReadKey();
        }
        //递归
        public static int DiGui(int i)
        {
            if (i==1)
            {
                return 1;
            }
            else if (i==2)
            {
                return 1;
            }
            else
            {
                return DiGui(i - 1) + DiGui(i - 2);
            }
           
        }
回复 使用道具 举报
这个一般用递归算法
static int F(int x)
{   if(x<1)     
{throw new InvalidArgumentException("x");   }
else if(x<3)     
{return 1;}   
else     
return F(x-1)+F(x-2); }
这样可以保证,这个数列到多少位都可以算的出来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马