1、1、2、3、5、8、13、21、34...... 求第X位数是多少, 用递归算法实现。

方法①:【递归调用】

public 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);

        }

 

方法②:【for循环】

public int AddNum(int x)

        {

            int f1 = 1;

            int f2 = 1;

            int f3 = 0;

            for (int j = 0; j < x; j++)

            {

                if (j > 1)

                {

                    f3 = f2 + f1;

                    f1 = f2;

                    f2 = f3;

                }

                else

                {

                    f3 = 1;

                }

            }

            return f3;

 

        }

 

调用(假设求第30位):

public void button1_Click(object sender, EventArgs e)

        {

             int xx = Foo(30);

 

            int yy = AddNum(30);

 

            MessageBox.Show(xx.ToString() +”—“+ yy.ToString());

 

结果:832040—832040

    原文作者:递归算法
    原文地址: https://blog.csdn.net/xb12369/article/details/7520494
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞