zoukankan      html  css  js  c++  java
  • 雷:面试时被问到fibonacci

    1 1 2 3 5 8...

    递归:

    代码
            static int FibonacciRecursive(int n)
            {        
                
    if (n == 1 || n == 2)
                    
    return 1;
                
    else if (n >= 2)
                {
                    
    return FibonacciRecursive(n - 1+ FibonacciRecursive(n - 2);
                }
                
    else if (n <= 0)
                {
                    
    throw new ArgumentNullException(string.Format("{0} is illegal", n));              
                }
                
    return 0;
            }

    非递归:

    代码
            static int Fibonacci(int n)
            {
                
    int lastNumber=1;
                
    int secondNumber=1;
                
    int currentNumber = 1;
                
    if (n > 0)
                {
                    
    for (int i = 3; i <= n; i++)
                    {                   
                        currentNumber 
    = lastNumber+secondNumber;
                        secondNumber 
    = lastNumber;
                        lastNumber 
    = currentNumber;
                    }
                }
                
    else
                {
                    
    throw new ArgumentNullException(string.Format ("{0} is not a legal number",n));
                }
                
    return currentNumber;
            }
  • 相关阅读:
    解决吞吐性能问题时的思路
    mysql left join转inner join
    TypeScript 在开发应用中的实践总结
    antd+react项目迁移vite的解决方案
    客官,.NETCore无代码侵入的模型验证了解下
    v-html可能导致的问题
    IDA反汇编EXE添加一个启动时的消息框
    OD反汇编EXE添加一个启动时的消息框
    Vue中的三种Watcher
    React中diff算法的理解
  • 原文地址:https://www.cnblogs.com/qixue/p/1669632.html
Copyright © 2011-2022 走看看