zoukankan      html  css  js  c++  java
  • 1、1、2、3、5、8、13、21、34...... 求第X位数是多少,2种实现方式

    经典的面试题,之前面试时写的不够好,回来后重新想了下,以下是2实现方式:

    方法一:【递归调用】

    public int FooNum(int i)

            {

                if (i < 0) return 0;

                else if (i > 0 && i <= 2) return 1;

                else return FooNum(i - 1) + FooNum(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 N1= FooNum(30);

                int N2 = AddNum(30);

                MessageBox.Show(N1.ToString() +"---"+ N2.ToString());

    结果:832040---832040 

  • 相关阅读:
    Java 之 Junit 单元测试
    数据结构和算法概述
    数组模拟队列
    单链表
    链表(Linked List)
    其它/编程 error201599
    SQL Server 生成 数据字典 / 数据库文档
    其它/编程 error2016420
    其它/编程 error2016118
    MySQL 数据 导入到 SQL Service
  • 原文地址:https://www.cnblogs.com/colder/p/2482444.html
Copyright © 2011-2022 走看看