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 

  • 相关阅读:
    通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库
    JDBC连接
    多线程TCP的socket通信
    基于UDP协议的socket通信
    基于TCP协议的socket通信
    设计模式之单例模式
    设计模式之代理模式
    设计模式之策略模式
    >hibernate-session中的方法
    >hibernate的四种状态
  • 原文地址:https://www.cnblogs.com/colder/p/2482444.html
Copyright © 2011-2022 走看看