Java 斐波那契数列

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/50339901 斐波那契数列在编程界无人不晓...
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/50339901

斐波那契数列在编程界无人不晓,不晓得以前是否已经写过这样的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);
        }
    }

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

重要的不是这个,是斐波那契数列
翻阅百度百科,让我记忆犹新的有:

  1. 斐波那契数列是斐波那契在养兔子时候发现的非常用意思的数列,虽然我不知道新生兔子第一个月是不生产的,但想来所有的规律都是和生活所贴近的。
  2. 斐波那契数列能计算出黄金分割,随着数量的增加,前一项与后一项的比重越接近0.618,哦,天哪,这肯定不是斐波那契发现的,后人研究的成果。
  3. 树木发芽也符合斐波那契数列,好神奇。
  4. 杨辉三角好像也和斐波那契数列有点关系,虽然没有细读。

相关文章

王二语录

I dont care who you are, where you are from,what you did,as long as you love me──后街男孩《as long as you love me》
本文出自:【qing_gee的博客

相关文章
|
Java
Java经典编程习题100例:第10例:计算斐波那契数列(Fibonacci)的第n个值
Java经典编程习题100例:第10例:计算斐波那契数列(Fibonacci)的第n个值
53 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。 这个数列从第三项开始,每一项都等于前两项之和。
113 0
Java_斐波那契数列_兔子生兔子算法
|
Java
Java 斐波那契数列
Java 斐波那契数列
94 0
JAVA--自制斐波那契数列输出
累了,写点简单的。 1 public class hello { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 ...
796 0
|
1天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
12 0
|
1天前
|
Java
Java中的并发编程:理解和应用线程池
【4月更文挑战第23天】在现代的Java应用程序中,性能和资源的有效利用已经成为了一个重要的考量因素。并发编程是提高应用程序性能的关键手段之一,而线程池则是实现高效并发的重要工具。本文将深入探讨Java中的线程池,包括其基本原理、优势、以及如何在实际开发中有效地使用线程池。我们将通过实例和代码片段,帮助读者理解线程池的概念,并学习如何在Java应用中合理地使用线程池。
|
5天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
6天前
|
安全 Java
java多线程(一)(火车售票)
java多线程(一)(火车售票)
|
6天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。