一、列出Fibonacci数列的前N个数

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Fibonacci
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. cal();
  13. cal2();
  14. //运行结果相同
  15. }
  16. /*需求:列出Fibonacci数列的前N个数*/
  17. //方案一:迭代N次,一次计算一项
  18. public static void cal(int N)
  19. {
  20. int f1 = ;
  21. int f2 = ;
  22. int f = ;
  23. for (int i = ; i <= N; i++)
  24. {
  25. if (i == )
  26. {
  27. Console.Write(f1);
  28. Console.Write(" ");
  29. }
  30. else if (i == )
  31. {
  32. Console.Write(f2);
  33. }
  34. else
  35. {
  36. f = f1 + f2;
  37. f2 = f1;
  38. f1 = f;
  39. Console.Write(" ");
  40. Console.Write(f);
  41.  
  42. }
  43. }
  44. }
  45. //方案二:迭代N/2次,一次计算两项
  46. public static void cal2(int N)
  47. {
  48. int f1 = ;
  49. int f2 = ;
  50. for (int i = ; i <= N / ; i++)
  51. {
  52. Console.Write(" ");
  53. Console.Write(f1);
  54. Console.Write(" ");
  55. Console.Write(f2);
  56.  
  57. f1 = f1 + f2;
  58. f2 = f2 + f1;
  59. }
  60. }

二、求出Fibonacci数列第N个数字(递归)

  1. namespace Fibonacci
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. string N = Console.ReadLine();
  8. int integer = Convert.ToInt32(N);
  9. Console.WriteLine("{0}",F(integer));
  10.  
  11. }
  12. /*需求:求出Fibonacci数列第N个数字*/
  13.  
  14. //递归
  15. public static int F(int N)
  16. {
  17. if (N == )
  18. return ;
  19. if (N == )
  20. return ;
  21. else
  22. return F(N - ) + F(N - );
  23. }
  24. }
  25. }

三、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

问题分析:其兔子数目依旧是按1,1,2,3,5…的顺序进行排列。其本质仍为斐波那契数列。

解决:按照一中的方案二进行即可。

  1. namespace Fibonacci
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. //与方案二相同
  8. string N = Console.ReadLine();
  9. int integer = Convert.ToInt32(N);
  10. int f1 = ;
  11. int f2 = ;
  12. for (int i = ; i <= integer; i++)
  13. {
  14. Console.Write("{0} {1}",f1,f2);
  15. Console.Write(" ");
  16. if (i%==)
  17. Console.WriteLine("\n");
  18. f1 = f1 + f2;
  19. f2 = f2 + f1;
  20. }
  21. }
  22.  
  23. }
  24. }

若后续有相关问题,余则继续补充。

愿诸位朋友及时指正!

【算法】Fibonacci(斐波那契数列)相关问题的更多相关文章

  1. 递归算法之Fibonacci 斐波那契数列第n个数的求解

    Fibonacci 斐波那契数列第n个数的求解,也可以用递归和非递归的形式实现,具体如下,dart语言实现. int fibonacci(int n) { if (n <= 0) throw S ...

  2. 算法导论-求(Fibonacci)斐波那契数列算法对比

    目录 1.斐波那契数列(Fibonacci)介绍 2.朴素递归算法(Naive recursive algorithm) 3.朴素递归平方算法(Naive recursive squaring) 4 ...

  3. 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)

    递归与循环 递归:在一个函数的内部调用这个函数. 本质:把一个问题分解为两个,或者多个小问题(多个小问题相互重叠的部分,会存在重复的计算) 优点:简洁,易于实现. 缺点:时间和空间消耗严重,如果递归调 ...

  4. Reverse反转算法+斐波那契数列递归+Reverse反转单链表算法--C++实现

    Reverse反转算法 #include <iostream> using namespace std; //交换的函数 void replaced(int &a,int & ...

  5. lintcode:Fibonacci 斐波纳契数列

    题目: 斐波纳契数列 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, ...

  6. [BSGS算法]纯水斐波那契数列

    学弟在OJ上加了道"非水斐波那契数列",求斐波那契第n项对1,000,000,007取模的值,n<=10^15,随便水过后我决定加一道升级版,说是升级版,其实也没什么变化,只 ...

  7. Python算法_斐波那契数列(10)

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 ...

  8. javascript:算法之斐波那契数列

    一 //1,1,2,3,5,8,13,21这个数列 斐波那契 数列(肥波哪弃) //得到第9项是几? /*******************************111111111递归的思想*** ...

  9. PHP算法之斐波那契数列(递归)

    /*斐波那契数列 源代码分析 f(x) = 1 ; 当 x < 2 ; f(x) = f(x-1)+f(x-2); 当 x >= 2 ; 通项式为:fn ={((1+根号5)/2)^n-( ...

  10. Fibonacci(斐波那契数列)的最佳实践方式(JavaScript)

    1)低级版本 var fibonacci = function(n) { if (n == 0 || n == 1) { return n; } else { return fibonacci(n - ...

随机推荐

  1. iOS获取手机型号、iOS获取当前app的名称和版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...

  2. 3、python数据类型之字符串(str)

    字符串是任何计算机语言中最常见的数据类型,python中也不例外,因此熟练掌握字符串是学习python的必备技能.python中字符串三种定义方式 str = 'wang' str = "w ...

  3. 外键约束 foreign key

    外键约束 :保持数据一致性,完整性实现一对多关系.外键必须关联到键上面去,一般情况是,关联到另一张表的主键 (因为一个表只存一类信息.用外键来做参照,保证数据的一致性,可以减少数据冗余) ##表acr ...

  4. Vs 排除的文件➕ 添加回项目。。。。

    显示所有文件之后吧,就能看到排除掉的文件了.右键之前的文件,包括在项目中即可.

  5. 获取Spring应用环境上下文bean

    import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBean ...

  6. 二,JVM 自带命令行工具之JStat

    jstat:虚拟机统计信息见识工具 jstat是用于见识虚拟机各种运行状态信息的命令行工具.他可以显示本地或远程虚拟机进程中的类装载.内存.垃圾收集.JIT编译等运行数据. jstat option ...

  7. java常见数据结构举例

    1. ArrayList(参考) import java.util.*; public class Test{ public static void main(String [] args){ Arr ...

  8. windows 2012 r2 x64 安装IIS注意事项

    详细安装可以参考下面; https://jingyan.baidu.com/article/93f9803f234eade0e46f559f.html 下面只说一些注意事项,如果项目要用到wcf 的话 ...

  9. 利用XML序列化和Asp.Net Web缓存实现站点配置文件

    我们经常会遇到这样的场景: 今天来了个业务,需要加一个字段,但是考虑的以后可能有变动,需要配成“活”的. 一般最初的做法就是加一个配置到Web.Config文件的AppSettings中去.但是这样有 ...

  10. WPF OnApplyTemplate 不执行 或者执行滞后的疑惑

    OnApplyTemplate 不执行 平时如何开发自定义控件的 在WPF自定义控件开发的过程中遇到了这样一个问题,属性更改事件在OnApplyTemplate之前执行.我在写自定义控件的时候,喜欢通 ...