题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行

斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
这个数列从第三项开始,每一项都等于前两项之和。

//java编程:三种方法实现斐波那契数列
//其一方法:

  1. public class Demo1 {
  2. // 定义三个变量方法
  3. public static void main(String[] args) {
  4. int a = 1, b = 1, c = 0;
  5. System.out.println("斐波那契数列前20项为:");
  6. System.out.print(a + "\t" + b + "\t");
  7. //因为前面还有两个1、1 所以i<=18
  8. for (int i = 1; i <= 18; i++) {
  9. c = a + b;
  10. a = b;
  11. b = c;
  12. System.out.print(c + "\t");
  13. if ((i + 2) % 5 == 0)
  14. System.out.println();
  15. }
  16. }
  17. }

//java编程:三种方法实现斐波那契数列
//其二方法:

  1. public class Demo2 {
  2. // 定义数组方法
  3. public static void main(String[] args) {
  4. int arr[] = new int[20];
  5. arr[0] = arr[1] = 1;
  6. for (int i = 2; i < arr.length; i++) {
  7. arr[i] = arr[i - 1] + arr[i - 2];
  8. }
  9. System.out.println("斐波那契数列的前20项如下所示:");
  10. for (int i = 0; i < arr.length; i++) {
  11. if (i % 5 == 0)
  12. System.out.println();
  13. System.out.print(arr[i] + "\t");
  14. }
  15. }
  16. }

//java编程:三种方法实现斐波那契数列

//其三方法:

  1. public class Demo3 {
  2. // 使用递归方法
  3. private static int getFibo(int i) {
  4. if (i == 1 || i == 2)
  5. return 1;
  6. else
  7. return getFibo(i - 1) + getFibo(i - 2);
  8. }
  9. public static void main(String[] args) {
  10. System.out.println("斐波那契数列的前20项为:");
  11. for (int j = 1; j <= 20; j++) {
  12. System.out.print(getFibo(j) + "\t");
  13. if (j % 5 == 0)
  14. System.out.println();
  15. }
  16. }
  17. }

这道兔子题的实质就是斐波那契数列: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?,现在从变量、数组、递归三个角度出发解决这个puzzle,当然还有其它的方法,同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼吧。

斐波那契数列-java编程:三种方法实现斐波那契数列的更多相关文章

  1. java 获取随机数的三种方法

    方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...

  2. Java的三种代理模式

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  3. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  4. (转)Java结束线程的三种方法

    背景:面试过程中问到结束线程的方法和线程池shutdown shutdownnow区别以及底层的实现,当时答的并不好. Java结束线程的三种方法 线程属于一次性消耗品,在执行完run()方法之后线程 ...

  5. 理解java的三种代理模式

    代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class ...

  6. java 的三种代理

    java的三种代理模式   1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作, ...

  7. Java的三种代理模式(Spring动态代理对象)

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  8. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  9. Java中获取键盘输入值的三种方法

    Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...

随机推荐

  1. 给Linux增加swap内存

    有时内存不足时, 编译xxx报错cc: 编译器内部错误:已杀死(程序 cc1) Please submit a full bug report, with preprocessed source if ...

  2. 【进阶4-2期】Object.assign 原理及其实现 (转)

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记  https://github.com/yygmind/blog/issues/26 浅拷贝 Object.assign 上篇文章介绍了其定义和使 ...

  3. 使用JUnit进行类的测试(一)

    首先是测试的一些常用标注: @Test:执行测试的方法 @Before & @After : 在 测试的方法 “前” 或者 “后” 被唤醒 -Initialization -Release r ...

  4. Oracle 数据库实例简介

      回到顶部 一:Oracle 数据库实例简介 1:数据库实例的启动顺序: 使用数据库其实就是访问内存.即:数据库实例.数据库的启动是顺序是 先 nomount ---->  mount --- ...

  5. pytorch的学习资源

    安装:https://github.com/pytorch/pytorch 文档:http://pytorch.org/tutorials/beginner/blitz/tensor_tutorial ...

  6. python自动化-unittest批量执行用例(discover)

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  7. Linux----centos安装mysql

    第一步wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 第二步rpm -ivh mysql-community-r ...

  8. Windows10右键添加“在此处打开命令窗口”

    cmdHere.reg: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere] @= ...

  9. 主流前端框架对比:Vue.js , React, Angular.js

    个人认为Vue.js的文档最恳切.我认为结合文档和遇到问题Google答案的匹配度来讲:Vue.js > ReactJS > AngularJS > Angular 2 如何使用Vu ...

  10. nginx配置http和https共存

    server { listen ; listen ssl; server_name localhost; #ssl on; ssl_certificate /usr/local/Tengine/ssl ...