斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行

//java编程:三种方法实现斐波那契数列
//其一方法:
- public class Demo1 {
- // 定义三个变量方法
- public static void main(String[] args) {
- int a = 1, b = 1, c = 0;
- System.out.println("斐波那契数列前20项为:");
- System.out.print(a + "\t" + b + "\t");
- //因为前面还有两个1、1 所以i<=18
- for (int i = 1; i <= 18; i++) {
- c = a + b;
- a = b;
- b = c;
- System.out.print(c + "\t");
- if ((i + 2) % 5 == 0)
- System.out.println();
- }
- }
- }
//java编程:三种方法实现斐波那契数列
//其二方法:
- public class Demo2 {
- // 定义数组方法
- public static void main(String[] args) {
- int arr[] = new int[20];
- arr[0] = arr[1] = 1;
- for (int i = 2; i < arr.length; i++) {
- arr[i] = arr[i - 1] + arr[i - 2];
- }
- System.out.println("斐波那契数列的前20项如下所示:");
- for (int i = 0; i < arr.length; i++) {
- if (i % 5 == 0)
- System.out.println();
- System.out.print(arr[i] + "\t");
- }
- }
- }
//java编程:三种方法实现斐波那契数列
//其三方法:
- public class Demo3 {
- // 使用递归方法
- private static int getFibo(int i) {
- if (i == 1 || i == 2)
- return 1;
- else
- return getFibo(i - 1) + getFibo(i - 2);
- }
- public static void main(String[] args) {
- System.out.println("斐波那契数列的前20项为:");
- for (int j = 1; j <= 20; j++) {
- System.out.print(getFibo(j) + "\t");
- if (j % 5 == 0)
- System.out.println();
- }
- }
- }
这道兔子题的实质就是斐波那契数列: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?,现在从变量、数组、递归三个角度出发解决这个puzzle,当然还有其它的方法,同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼吧。
斐波那契数列-java编程:三种方法实现斐波那契数列的更多相关文章
- java 获取随机数的三种方法
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...
- Java的三种代理模式
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...
- Java的三种代理模式简述
本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...
- (转)Java结束线程的三种方法
背景:面试过程中问到结束线程的方法和线程池shutdown shutdownnow区别以及底层的实现,当时答的并不好. Java结束线程的三种方法 线程属于一次性消耗品,在执行完run()方法之后线程 ...
- 理解java的三种代理模式
代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class ...
- java 的三种代理
java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作, ...
- Java的三种代理模式(Spring动态代理对象)
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
随机推荐
- rsyslog的安装、使用、详解
操作系统:CentOS release 6.7 download yum repo file:rsyslogall.repo [rsyslog-v8-stable] name=Adiscon Rsys ...
- PHP项目笔记
1.controller输出前端传来的值:var_dump($_POST['oid']); 2.var_dump($_POST['oid']);die:
- 十大web安全扫描工具
本文来源:绿盟整理 <十大web安全扫描工具> 十大web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web 站点上助一臂之力,也就是说在黑客"黑"你之前, 先测 ...
- Confluence 6 配置快速导航
当在 Confluence 中的快速导航进行查找的时候(请查看 Searching Confluence)能够帮助你显示页面下拉列表和其他的项目,这个是通过查找页面标题进行比对的.在默认情况下,这个功 ...
- Java语法基础常见疑惑解答8,16,17,21图片补充
8. 16. 17. 21
- Scratch 2.0-Find The Mouse 发布!
日期:2018.8.26 星期日 博客期:007 今天随便写了一个小型游戏程序,哈哈!虽然小,但用到的逻辑还是有一定水平的.呼~毕竟就这一下子也写不出来微软一样的公司嘛!哈哈,截图放上来! 游戏分为四 ...
- Mysql哪些字段适合建立索引
数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特 ...
- HTML5 缓存: cache manifest
---恢复内容开始--- 1:MIME TYPE:text/cache-manifest 服务器配置MIME类型2:需要由你创建的:NAME.manifest 创建manifest文件3:给 < ...
- 【python】mongo删除数据
参考:https://stackoverflow.com/questions/23334743/setting-justone-limiter-for-pymongo-remove-throws-ty ...
- bzoj 2301
一道莫比乌斯反演入门题. 首先观察题目要求:的数对数 首先可以发现,这个东西同时有上界和下界,所以并不是很容易计算 那么我们变下形,可以看到:原式= 是不是清晰很多了?(当然没有!) 不,这一步很重要 ...