>  기사  >  Java  >  자바에서 피보나치 수열을 구현하는 세 가지 방법

자바에서 피보나치 수열을 구현하는 세 가지 방법

王林
王林앞으로
2019-12-06 12:00:535440검색

자바에서 피보나치 수열을 구현하는 세 가지 방법

피보나치 수열의 정의: 피보나치 수열은 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368..., 이 순서는 3번째 항목부터 시작되며, 각 항목은 이전 두 항목과 동일합니다.

황금분할 수열이라고도 알려진 피보나치 수열은 수학자 레오나르도다 피보나치가 토끼 번식을 예로 들어 소개했기 때문에 "토끼 수열"이라고도 불립니다. 수학적으로 피보나치 수열은 다음과 같이 재귀적으로 정의됩니다: F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n>=2, n ∈N*).

무료 온라인 비디오 튜토리얼 공유: java 온라인 비디오

이제 Java를 사용하여 피보나치 수열의 처음 10개 숫자를 인쇄합니다.

첫 번째 방법: 직접 할당 방법

public class PrintFib {
 
	public static void main(String[] args) {
		
		//定义第一个加数a,初始值为1;定义第二个加数b,初始值为1;定义两个加数之和为c,初始值为0
		int a = 1;
		int b = 1;
		int c = 0;
		//首先在控制台打印出数列中第一个数和第二个数的值
		System.out.print(a + "\t" + b + "\t");
		//建立一个for循环,用于循环输出数列中第三位至第十位的数字
		for (int i = 3; i <= 10; i++) {
			//第三个数即为c,a+b等于c的值
			c = a + b;
			//将第一个加数a赋值为数列中的第二个数b的值
			a = b;
			//将第二个加数b赋值为数列中的第三个数c的值
			b = c;
			//在第二次循环打印时,将打印数列中的第四个数为:b + c = b + (a + b) 
			System.out.print(c + "\t");
		}
	}
}

이 방법도 가능합니다. 다음으로 단순화하세요:

public class PrintFib {
	
	public static void main(String[] args) {
		
		int a = 1;
		int b = 1;	
		for(int i = 1;i <= 5;i++) {	
			//循环打印a,b两个数,即两个两个打印
			System.out.print(a + "\t" + b + "\t");
			//打印第三、四个数
			a = a + b;
			b = a + b;		
		}
	}
}

두 번째 방법: 배열 생성 및 인쇄

public class PrintFib {
	
	public static void main(String[] args) {
		
		//建立一个长度为10的数组用于存放数列中的数
		int[] arr = new int[10];
		//先定义数列中的第一个和第二个数
		arr[0] = 1;
		arr[1] = 1;
		//建立一个for循环,打印数组中的元素
		for(int i = 0;i < arr.length;i++) {
			//判断:当打印第三个数前,给第三个数赋值
			if(i > 1) {
				arr[i] = arr[i - 2] + arr[i - 1];
			}
			System.out.print(arr[i] + "\t");
		}
		
	}
}

세 번째 방법: 함수 호출

public class PrintFib {
	
	//建立一个函数,用于计算数列中的每一项
	public static int fib(int num) {
		//判断:是否是第一个数和第二个数
		if(num == 1 || num == 2) {
			return 1;
		}else {
			//循环调用本函数
			return fib(num - 2) + fib(num - 1);
		}
	}
	
	//主函数(程序入口)
	public static void main(String[] args) {
		
		//建立一个for循环,用于打印第一个至第十个数字
		for(int i = 1;i <= 10;i++) {
			//调用函数进行打印
			System.out.print(fib(i) + "\t");
		}	
	}
	
}

더 많은 관련 기사 튜토리얼을 보려면 다음을 방문하세요. Java 학습 시작하기

위 내용은 자바에서 피보나치 수열을 구현하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제