斐波拉契数列java数组
时间: 2023-12-05 16:40:17 浏览: 70
斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。
在Java中,可以使用数组来存储斐波那契数列。以下是一个示例代码:
```
public class Fibonacci {
public static void main(String[] args) {
int n = 10; // 求斐波那契数列的前n项
int[] fib = new int[n];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
for (int i = 0; i < n; i++) {
System.out.print(fib[i] + " ");
}
}
}
```
在上面的代码中,我们首先定义了一个整型变量n,表示要求斐波那契数列的前n项。然后我们创建了一个长度为n的整型数组fib,并将第一项和第二项分别赋值为0和1。接着使用for循环计算出剩余的项,并将它们存储在数组中。最后使用for循环输出数组中的所有元素。
相关问题
斐波拉契数列java
斐波那契数列是一个以兔子繁殖为例子而引入的数列,其规律是从第三个数开始,每个数都等于它前两个数的和。在Java中,可以通过以下三种方法来实现斐波那契数列:
方法一:使用递归调用
```java
public static int fib(int n) {
if (n <= 2)
return 1;
return fib(n - 1) + fib(n - 2);
}
```
方法二:使用一个数组存放斐波那契数列的每一项数据,避免递归调用
```java
public static int fib2(int n) {
if (n <= 2)
return 1;
int[] array = new int[n + 1];
array[1] = array[2] = 1;
for (int i = 3; i <= n; i++) {
array[i] = array[i - 1] + array[i - 2];
}
return array[n];
}
```
方法三:通过for循环和数组的方式实现
```java
public static long fibonacci3(int n) {
if (n < 1) {
return -1;
}
if (n == 1 || n == 2) {
return 1;
}
long[] arr = new long[n];
arr[0] = arr[1] = 1;
for (int i = 2; i < n; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
return arr[n - 1];
}
```
请编写java程序生成斐波拉契数列前20项,以字节流的方式输出到文件in.txt中,要求每5项一行,每项之间以“,”分隔。
以下是示例代码:
```java
import java.io.*;
public class FibonacciToFile {
public static void main(String[] args) {
int n = 20;
int[] fib = new int[n];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
try {
FileOutputStream fileOutputStream = new FileOutputStream("in.txt");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
for (int i = 0; i < n; i++) {
String fibString = String.valueOf(fib[i]);
byte[] bytes = fibString.getBytes();
bufferedOutputStream.write(bytes);
if (i % 5 == 4) {
bufferedOutputStream.write('\n');
} else if (i < n - 1) {
bufferedOutputStream.write(',');
}
}
bufferedOutputStream.close();
fileOutputStream.close();
System.out.println("斐波拉契数列已成功写入文件!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序首先生成斐波拉契数列前20项并存储在一个数组中。然后,它使用FileOutputStream和BufferedOutputStream将这些数字以字节流的方式写入到文件"in.txt"中。在写入过程中,程序会按照每5个数字一行的格式将它们以逗号分隔的形式写入文件。最后,程序会关闭输出流并打印一条成功写入文件的消息。
阅读全文