`

基本算法之2---打印斐波那契数列

阅读更多

简要描述:

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

 

代码实现:

import java.util.Scanner;

public class Test{
  public static int Fibo1(int n){ 
	  //使用数组
	  int[] a = new int[n];
	  a[0]=a[1]=1;
	  for(int t = 2;t<n;t++)
		  a[t]=a[t-1]+a[t-2];
	  return a[n-1];
  }
  
  public static int Fibo2(int n){ 
	  //与1比,节省空间
	  int a=1;
	  int b=1;
	  int c=0;
	  for(int i = 2;i<n;i++){
		  c = a+b;
		  a = b;
		  b = c;
	  }
	  return c;
  }
  


  
  public static void main(String[] args) {
	  Scanner sc = new Scanner(System.in);
	  int n = sc.nextInt();
	  if(n<1)
		  System.out.print("error");
	  else if (n==1 || n==2)
		  System.out.print("1");
	  else
	  {
		  System.out.print(Fibo1(n));
		  System.out.print(Fibo2(n));
	  }
		  
	}
}
/**基本思想:
 *  使用递推法。
 *  后面方法,通过有限的变量存储信息/
 */

 

分享到:
评论

相关推荐

    算法-数论- 斐波那契数列(Fibonacci).rar

    - Lucas数列也是类似斐波那契数列的数列,其定义为L(0)=2, L(1)=1, L(n) = L(n-1) + L(n-2)。斐波那契数列和Lucas数列之间有许多有趣的联系,如它们的交替相加可以得到一个简单的等差数列。 7. **斐波那契数列在...

    python-算法-斐波那契数列

    算法学习-斐波那契数列

    Fibonacci数列斐波那契数列PPT学习教案.pptx

    "Fibonacci数列斐波那契数列PPT学习教案.pptx" Fibonacci数列是一种非常重要的数学概念,它的应用非常广泛,包括生物学、经济学、计算机科学等领域。下面我们将详细介绍Fibonacci数列的概念、性质和应用。 1. ...

    递归算法算斐波那契数列

    ### 递归算法计算斐波那契数列 #### 知识点概览 1. **斐波那契数列定义** 2. **递归算法原理** 3. **递归函数设计** 4. **递归算法的时间复杂度分析** 5. **C语言实现递归斐波那契数列** #### 斐波那契数列定义 ...

    算法设计实验报告之多种方法求解斐波那契数列

    1. **递推算法**:基于斐波那契数列的定义,即F(n) = F(n-1) + F(n-2),最直观的实现方式是递归。然而,递归算法存在大量的重复计算,效率较低,时间复杂度为O(2^n)。 2. **迭代算法**:为了避免递归中的重复计算,...

    算法设计-实验一-斐波那契数列.docx

    数学上,斐波那契数列可以用递归的形式表示为:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n &gt;= 2)。 实验一的目标是通过实际编程来理解并运用这两个概念——阶乘函数和斐波那契数列。阶乘函数是一个整数的乘积...

    斐波那契数列算法分析.doc

    "斐波那契数列算法分析" 斐波那契数列是一种非常经典的数学概念,它的应用非常广泛,包括算法设计、生物学、经济学等领域。斐波那契数列的定义是:每个数都是前两个数的和,从第三个数开始,每个数都是前面两个数的...

    算法基础与递归-百积问题-递归求公约数-求阶乘-斐波那契数列

    递归算法的基本思想是将问题分解成更小的子问题,然后使用同样的方法解决这些子问题,直到问题的规模小到可以直接解决为止。本文将通过实验和代码实现,来详细介绍递归算法的原理和应用。 一、递归算法的原理 递归...

    常用算法程序集-徐士良-常用算法程序集-徐士良

    4. 动态规划:如背包问题、最长公共子序列、斐波那契数列等,动态规划是一种解决复杂问题的有效方法,通过将大问题分解为小问题来求解。 5. 贪心算法:这种算法通常用于找到局部最优解,以期望达到全局最优,如...

    《C常用算法程序集-徐士良》源代码

    2. **递归与分治**:徐士良的代码集可能包含递归函数的示例,如斐波那契数列、汉诺塔问题、归并排序等,这些都是分治策略的典型应用。递归和分治法能解决复杂问题,并且是高效算法设计的重要工具。 3. **动态规划**...

    《计算机算法设计与分析》算法实现题2-1

    1. **排序算法**:排序是最基本的算法之一,包括冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。每种排序算法都有其适用场景和性能特点,比如快速排序平均时间复杂度为O(nlogn),而冒泡排序则为O(n^2...

    算法-斐波那契数列(信息学奥赛一本通-T1159)(包含源程序).rar

    斐波那契数列通常以F(n)表示,定义如下:F(0) = 0,F(1) = 1,对于n &gt; 1,F(n) = F(n-1) + F(n-2)。这个序列起源于中世纪意大利数学家斐波那契的《算盘书》中,他在书中提出了一道关于兔子繁殖的问题,进而引出了...

    Labview实现递归:斐波那契数列

    斐波那契数列: 在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3...Fib(n) = Fib(n-1) + Fib(n-2),其中,Fib(0) = 0,Fib(1) = 1 本例为LabVIEW中编写递归VI实现求解斐波那契数列Fib(n)中第n项的值

    基础算法-python斐波那契数列

    【基础算法】-python斐波那契数列 # 1、生成器 def fib_yield_while(max): a, b = 0, 1 while max &gt; 0: a, b = b, a+b max -= 1 yield a def fib_yield_for(n): a, b = 0, 1 for _ in range(n): a, b...

    斐波那契数列(前100项).rar

    换句话说,斐波那契数列的第n项(记作F(n))可以通过F(n-1)和F(n-2)来计算。数列的前几项是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...,以此类推。 斐波那契数列在计算机编程中的应用主要体现在以下几个方面: 1. **...

    斐波那契数列.pdf

    斐波那契数列(Fibonacci sequence)是数学中一个非常著名的数列,其特点是每一项数值都是前两项数值的和。通常情况下,斐波那契数列的第一项为0或1,第二项也为1,后续各项则根据定义递推得到。 **基本形式:** \...

    C++ 源程序---求斐波那契数列

    斐波那契数列定义为:F(0) = 0,F(1) = 1,对于n &gt; 1,F(n) = F(n-1) + F(n-2)。数列的前几项是0, 1, 1, 2, 3, 5, 8, 13...。这个序列在自然界、艺术、音乐等领域都有所体现,并且在计算机算法中被广泛用作示例和...

    java用非递归的方法打印Fibonacci数列

    Java 非递归打印 Fibonacci 数列 Java 中的 Fibonacci 数列是通过非递归的方法来实现的,该方法使用循环来计算 Fibonacci 数列的每个元素,而不使用递归函数。 Java 中的 Fibonacci 数列的定义是从 0 开始的,第一...

    斐波那契数列的三种算法.doc

    这里,我们讨论了三种不同的算法来计算斐波那契数列的第 n 项。 **算法一:递归** 递归算法是最直观的方法,它直接根据斐波那契数列的定义进行计算。代码如下: ```c long int fibo(int n){ if(n==0) return 0; ...

    Fibonacci(斐波那契)数列的JAVA解法

    输出Fibonacci数列是一种使用循环来输出斐波那契数列的方法。该方法的思想是使用循环来输出斐波那契数列的每个数字。下面是一个输出Fibonacci数列的JAVA代码: public class Fib{ public static void main(String ...

Global site tag (gtag.js) - Google Analytics