亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java中使用递归和循环程序的斐波那契数列

什么是 Java 中的斐波那契数列?

斐波那契数列 在 Java 中是一系列数字,其中下一个数字是前两个数字的总和。斐波那契数列的前两个数是 0 和 1。斐波那契数显着用于算法的计算运行时研究,以确定两个整数的最大公约数。

在算术上,Wythoff 数组是一个由斐波那契数列产生的无限矩阵。

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

使用 For 循环的 Java 斐波那契数列程序

//Using  For Loop
public class FibonacciExample {
 
	public static void main(String[] args) 
	{
		// Set it to the number of elements you want in the Fibonacci Series
		 int maxNumber = 10; 
		 int previousNumber = 0;
		 int nextNumber = 1;
		 
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
	}
}

输出:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

程序逻辑:

使用 While 循环的 Java 斐波那契数列程序

您还可以使用 While 生成 Java 斐波那契数列 Java中的循环。

//Using  While Loop
public class FibonacciWhileExample {
	public static void main(String[] args) 
	{
		 int maxNumber = 10, previousNumber = 0, nextNumber = 1;
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        int i=1;
	        while(i <= maxNumber)
	        {
	            System.out.print(previousNumber+" ");
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	            i++;
	        }
 
	}
 
}

输出:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

程序逻辑的唯一区别是使用 WHILE 循环打印斐波那契数

基于用户输入的斐波那契数列

//fibonacci series based on the user input
import java.util.Scanner;
public class FibonacciExample {
 
	public static void main(String[] args) 
	{
	
		 int maxNumber = 0; 
		 int previousNumber = 0;
		 int nextNumber = 1;
		 
		    System.out.println("How many numbers you want in Fibonacci:");
	        Scanner scanner = new Scanner(System.in);
	        maxNumber = scanner.nextInt();
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
 
	}
 
}

程序逻辑:

逻辑和前面一样。 Java Fibonacci Series 中不是硬编码要显示的元素数量,而是要求用户输入数字。

在 Java 中使用递归的斐波那契数列

下面是一个使用递归的Java斐波那契数列程序:

//Using Recursion
public class FibonacciCalc{
	public static int fibonacciRecursion(int n){
	if(n == 0){
		return 0;
	}
	if(n == 1 || n == 2){
			return 1;
		}
	return fibonacciRecursion(n-2) + fibonacciRecursion(n-1);
	}
    public static void main(String args[]) {
	int maxNumber = 10;
	System.out.print("Fibonacci Series of "+maxNumber+" numbers: ");
	for(int i = 0; i < maxNumber; i++){
			System.out.print(fibonacciRecursion(i) +" ");
		}
	}
}


输出:

Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34

程序逻辑:

递归函数是具有调用自身能力的函数。

fibonacciRecursion():

  1. Java Fibonacci 递归函数接受一个输入数字。检查 0、1、2 并相应地返回 0、1、1,因为 Java 中的斐波那契数列以 0、1、1 开头。
  2. 当输入 n>=3 时,函数会递归调用自身。通话进行了两次。让我们看看使用递归示例输入 4 的 Java 斐波那契数列。
	fibonacciRecursion (4)  
	It will recursively call fibonacciRecursion function for values 2 and 3
		fibonacciRecursion (2) \\ call for value 0 and 1
			fibonacciRecursion (0) = 0
			fibonacciRecursion (1) = 1
		fibonacciRecursion (3) \\ It will call for 1 and 2
			fibonacciRecursion (1) = 1
			fibonacciRecursion (2) \\ It will call for 0 and 1
				fibonacciRecursion (0) = 0
				fibonacciRecursion (1) = 1

现在结果相加 0+1+1+0+1=3


java

  1. Java Hello World 程序
  2. Java 变量和文字
  3. Java 表达式、语句和块
  4. Java 类和对象
  5. Java 抽象类和抽象方法
  6. Java 嵌套和内部类
  7. Java 抛出和抛出
  8. Java 自动装箱和拆箱
  9. 检查质数的Java程序
  10. 使用 For 循环的 JAVA 程序中的 Armstrong 数
  11. 如何使用递归在 Java 中反转字符串
  12. Java中使用while和for循环的回文数程序