上周抽了一天的时间去6家公司面试,时间太紧都是马马虎虎的,好在这趟面试还是有很多收获的,由此可见自己的理论功底真是差劲的要死,还有语言表达能力。

调侃的来说混了这么久,没有衣××的理论功底,只有雷××的实干精神,这样是不行滴,压根得不到考官们的赏识。

估计给考官的感觉就跟刚毕业的学生差不多一样,问的问题没几个能回答上来的,由此可想而知结果肯定是让人沮丧的。

这几年总结了不少东西,可是就是因为自己懒,导致很多学过的东西几乎没有一个能记得住的,也没有相应的笔记,用到方恨少啊,只能Google,时不时的Google直接导致时间的浪费。

所以警戒大家,学习的时候用点心,勤做笔记和总结,没事的时候翻出来看看加深记忆,这样比遇到问题就Google的效率要高很多,把Google当作学习工具要比把其当成字典要靠谱很多。

扯了半天蛋,还是进入主题吧,面试中有道笔试题,让用递归写出求出制定索引的斐波那契数列值。

先不管斐波那契数列是什么玩意,因为当初我也不知道它是什么东西,不过规律很简单,看过题目就知道索引值都是由前两个索引值的和求出来的。也就是索引1和索引2特别一点,因为值都为1。

要想了解斐波那契数列请参考维基百科(http://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97)

从来都是敲代码的而不是在纸上写代码,写出来只能表明我的思路,没有进行调试运行的结果肯定是错的。

记得考官看过我写的一个购物商城站点,结果问我购物车如何实现,一下子就问到我了,支支吾吾半天说不上来,直接就回答我说不出来,估计他以为那个网站是别人写的我只是拿来充数而已。

说这些还是希望大家多练习,看再多的书,一个例子不去写,以后在工作中真的什么都做不出来(面试之前还是的复习复习基础知识,不然到时候会很尴尬的)。

对于那些面试官而言,如果一个程序员有几年的工作经验,问一些基础知识,他们答不上来也是情有可原的,不要因为理论知识而放弃一个好的程序员。毕竟这年头招人不容易,毕竟我之前也是做过面试官的,记得那时只要来人我不会问任何一个理论知识,只会告诉他们根据最近的项目遇到的问题提出问题让他们回去写程序,什么时候写出来什么时候上班,结果另人失望,居然没一个来的。毕业生太不靠谱了。

下边贴出具体实现的代码,请大家参考。

原理也没什么复杂的,就是递归获取当前索引的斐波那契数列值,并记录前一条索引的斐波那契数列值。然后就是两个相加就是后一条索引的斐波那契数列值

class Program{static void Main(string[] args){/** 费波那西数列(Fibonacci Sequence),又译费波拿契数、斐波那契数列、费氏数列、黄金分割数列。* 在数学上,费波那西数列是以递归的方法来定义:* 用文字来说,就是费波那西数列由 0 和 1 开始,之后的费波那西系数就由之前的两数相加。首几个费波那西系数是(OEIS A000045):* 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………* 特别指出:0不是第一项,而是第零项。*/Console.WriteLine(GetFibonacciSequence(100));}/// <summary>/// 前一索引数列值/// </summary>private static Int64 f0 = 0;/// <summary>/// 当前索引数列值/// </summary>private static Int64 f1 = 1;/// <summary>/// /// </summary>/// <param name="index">索引从0开始</param>/// <returns>返回索引项对应的费波那西数列值</returns>private static Int64 GetFibonacciSequence(int index){#region 0在费波那西数列中比较特殊,因此单独解决它if (index == 0){return 0;}#endregionfor (int i = 0; i < index; i++){if (i == index - 1)//因为遍历起始索引为0,故需要对index-1来得到实际索引
                {return GetNumBySum(f0, f1);}else{Int64 c = f1;//中间过度值 存储前一索引值f1 = GetNumBySum(f0, f1);//当前索引数列if (i >= 1){f0 = c;//存储前一索引数列
                    }}}return f1;}/// <summary>/// 得到斐波那契数列Fn-1之和Fn-2/// </summary>/// <param name="n1">Fn-1</param>/// <param name="n2">Fn-2</param>/// <returns>总和</returns>private static Int64 GetNumBySum(Int64 n1, Int64 n2){return n1 + n2;}}

大家也可以参考园子内的另一篇文章(http://www.cnblogs.com/cuiweifu/archive/2008/03/05/1091604.html),去面试不讲究执行效率,还是死记硬背该文章的代码,比较靠谱。因为只有短短的4行而已。这里贴出来只是为了大家学习而已。切记学以致用。。。

电脑维修网

转载于:https://www.cnblogs.com/frlmoney/archive/2013/03/12/2955727.html

斐波那契数列算法(C#)相关推荐

  1. PHP 算法之斐波那契数列算法 计算出生兔子的数量

    <斐波那契数列算法> 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:一对兔子也 ...

  2. 斐波拉契数列——算法

    斐波拉契数列 题目描述 斐波那契数列是一组第一位F1和第二位F2为1,从第三位开始,后一位是前两位和的一组递增数列Fn=Fn-1+Fn-2. 那么当n比较大时,Fn也非常大,现在我们想知道,第n项,F ...

  3. Python斐波那契数列算法

    第一种.函数求裴波那契数列: def func(num):if n==1 or n==2: # 如果n等于1或者2return 1 # 返回1else: # 否则return func(n-1)+fu ...

  4. 斐波那契数列算法c语言实现

    有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法.#include <stdio.h> int n,m,i,j; i ...

  5. “斐波那契数列”的两种算法

    "斐波那契数列"的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如: 1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与 ...

  6. 斐波那契数列的迭代算法和递归算法

    斐波那契数列 斐波那契数列(Fibonacci sequence),又称"黄金分割数列",因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入, ...

  7. c语言 兔子数列螺线图,经典算法大全51例——2.斐波那契数列(兔子数列)

    经典算法大全51例--2.斐波那契数列 算法目录合集 地址 说明 题目 原理分析 代码实现--Java 相关题目其他变形: 1.爬楼梯(来源:力扣LeetCode) 2.兔子成熟期拉长 官方题解 分析 ...

  8. 计算机斐波那流程图,循环结构——斐波那契数列.DOC

    循环结构--斐波那契数列 循环结构--斐波那契数列 1.教学目标 根据新课标的要求和学生的认知特点,确定本节课的教学目标. (1)知识与技能 学生能理解循环结构概念:把握循环结构的三要素:循环的初始状 ...

  9. 斐波那契数列的数学分析

    请用数学归纳法证明,F0=1,F1=1,F2=1,F3=2,-,F_0=1,F_1=1,F_2=1,F_3=2,\ldots,,Fi=Fi−1+Fi−2F_i=F_{i-1}+F_{i-2},对 i≥ ...

最新文章

  1. 如果有人把支付宝的服务器炸了,你的两毛五是不是就没了?
  2. Oralce数据库数据迁移到另一个数据
  3. JDK之ConcurrentHashMap
  4. java 及时释放内存_Java 内存释放
  5. c++中的继承--3(多继承问题,菱形继承)
  6. Hbase对时,时差范围的确定
  7. 简单分享apache封IP的方法
  8. [IOS, Android] UI Thread的一些思想
  9. python语言创意绘画-有奖|这 18 个好用的正版软件、热门的付费教程限时超低价了...
  10. 英文简历模板计算机专业,2016年计算机专业英文简历模板
  11. 串口服务器的作用是什么?
  12. 指纹识别属于计算机技术,指纹识别技术属于人工智能吗 指纹识别技术什么时候发明的-与非网...
  13. 电脑键盘及excel快捷键
  14. 现汇买入价/现钞买入价/卖出价/基准价/中行折算价的概念
  15. TCP三次握手第三次握手时ACK丢失怎么办
  16. 焦虑症和抑郁症的区别
  17. 辽宁丰睿佳业:抖音店铺选品注意事项有哪些?
  18. java中的标号:outer的作用
  19. Shopee大规模毁约offer,今年的大厂装都不装了
  20. 扫描版pdf电子书修改背景色

热门文章

  1. qt创建线程和退出线程
  2. 里bl2和bl3为什么分开_施工现场乙炔瓶为什么必须直立?乙炔为什么不能用尽?........
  3. Python---编写一函数,将摄氏温度与华氏温度互转。
  4. contos7设置固定ip和dns_CentOS7 修改设置静态IP和DNS
  5. python中randn函数_numpy常用函数之randn
  6. mooc服务器返回数据为空,服务返回的json数据过大,nginx无法返回给client
  7. Android实现下拉头部缩放功能
  8. const的使用CC++
  9. 虚拟机批量安装LINUX,基于vmware workstation的 pxe + kickstart批量安装linux
  10. web和mysql连接并增删改查_Java Web 使用IDEA对mysql数据库进行简单增删改查操作(附源码下载)...