Java 斐波那契数列

简介: Java 斐波那契数列

斐波那契数列在编程界无人不晓,不晓得以前是否已经写过这样的Java 程序,也不关乎王二如今已经编程了多少年,再次来感受一下该数列的牛逼之处吧!

public static void main(String args[]) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            while (true) {
                int num = Integer.parseInt(br.readLine());
                if (num == -1) {
                    break;
                }
                int start = 1;
                int next = 1;
                System.out.print(start + "、");
                System.out.print(next + "、");
                // 从3开始到第num个斐波那契数
                for (int i = 3; i <= num; i++) {
                    int last = start + next;
                    System.out.print(last + "、");
                    start = next;
                    next = last;
                }
                System.out.println();
                for (int i = 1; i <= num; i++) {
                    System.out.print(getF(i) + "、");
                }
                System.out.println();
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    static int getF(int i) {
        if (i == 1 || i == 2) {
            return 1;
        } else {
            return getF(i - 1) + getF(i - 2);
        }
    }

一个递归,一个前两位相加,这两个方法很常用,也很简单,就不费口舌了。


重要的不是这个,是斐波那契数列

翻阅百度百科,让我记忆犹新的有:


斐波那契数列是斐波那契在养兔子时候发现的非常用意思的数列,虽然我不知道新生兔子第一个月是不生产的,但想来所有的规律都是和生活所贴近的。

斐波那契数列能计算出黄金分割,随着数量的增加,前一项与后一项的比重越接近0.618,哦,天哪,这肯定不是斐波那契发现的,后人研究的成果。

树木发芽也符合斐波那契数列,好神奇。

杨辉三角好像也和斐波那契数列有点关系,虽然没有细读。


相关文章
|
5月前
|
Java
java实现斐波那契数列(递归、迭代、流)
java实现斐波那契数列(递归、迭代、流)
|
Java
Java经典编程习题100例:第10例:计算斐波那契数列(Fibonacci)的第n个值
Java经典编程习题100例:第10例:计算斐波那契数列(Fibonacci)的第n个值
89 0
|
算法
Java_斐波那契数列_兔子生兔子算法
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 特别指出:第0项是0,第1项是第一个1。 这个数列从第三项开始,每一项都等于前两项之和。
151 0
Java_斐波那契数列_兔子生兔子算法
|
Java
Java 斐波那契数列
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/50339901 斐波那契数列在编程界无人不晓...
813 0
JAVA--自制斐波那契数列输出
累了,写点简单的。 1 public class hello { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 ...
815 0
|
8天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
15天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
7天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
|
7天前
|
Java 开发者
Java多线程编程的艺术与实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的技术文档,本文以实战为导向,通过生动的实例和详尽的代码解析,引领读者领略多线程编程的魅力,掌握其在提升应用性能、优化资源利用方面的关键作用。无论你是Java初学者还是有一定经验的开发者,本文都将为你打开多线程编程的新视角。 ####
下一篇
无影云桌面