斐波拉契数列前20puthon
时间: 2023-12-10 22:37:40 浏览: 65
以下是斐波那契数列的前20个数字的Python代码:
```python
a, b = 0, 1
for i in range(20):
print(a, end=" ")
a, b = b, a + b
```
输出结果为:
```
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
```
相关问题
用c++写一个程序:斐波拉契数列的前两项分别为1.1。以后每项为前两项之和。现在输入n,要求斐波拉契数列前n项的和(1<=n<=5000)。 输入 输入只有二个数n,表示求斐波拉契数列前n项的和。 输出 输出斐波拉契数列前n项的和
以下是使用 C++ 编写的代码,可以求斐波那契数列前 n 项的和:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<long long> fib(n + 1);
fib[1] = fib[2] = 1;
for (int i = 3; i <= n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
long long sum = 0;
for (int i = 1; i <= n; i++) {
sum += fib[i];
}
cout << sum << endl;
return 0;
}
```
解释一下代码:
首先读入 n,表示需要求斐波那契数列前 n 项的和。
定义一个 vector 数组 fib,长度为 n+1,因为需要计算 fib[1] 到 fib[n]。
前两项 fib[1] 和 fib[2] 都为 1。
从第三项开始,每一项都等于前两项之和,可以使用递推公式 fib[i] = fib[i-1] + fib[i-2]。
最后遍历整个 fib 数组,计算总和,输出结果。
需要注意的是,斐波那契数列的项数 n 最大可以达到 5000,因此在计算过程中要注意数据类型的选择,这里使用 long long 类型。
请编写java程序生成斐波拉契数列前20项,以字节流的方式输出到文件in.txt中,要求每5项一行,每项之间以“,”分隔。请编写程序,从in.txt文件中读取斐波拉契数列前20项,并计算前20项目的和,将计算所得到的和写入sum.txt文件中。
以下是符合要求的Java程序:
```java
import java.io.*;
public class Fibonacci {
public static void main(String[] args) {
int n = 20;
int[] fib = new int[n];
fib[0] = 1;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
try (OutputStream out = new FileOutputStream("in.txt")) {
for (int i = 0; i < n; i++) {
out.write(Integer.toString(fib[i]).getBytes());
if ((i + 1) % 5 == 0) {
out.write(System.lineSeparator().getBytes());
} else {
out.write(",".getBytes());
}
}
} catch (IOException e) {
e.printStackTrace();
}
int sum = 0;
try (InputStream in = new FileInputStream("in.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
String line;
while ((line = reader.readLine()) != null) {
String[] nums = line.split(",");
for (String num : nums) {
sum += Integer.parseInt(num);
}
}
} catch (IOException e) {
e.printStackTrace();
}
try (OutputStream out = new FileOutputStream("sum.txt")) {
out.write(Integer.toString(sum).getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
程序首先生成斐波拉契数列前20项,并以字节流的方式输出到文件in.txt中。每5项一行,每项之间以“,”分隔。
接着,程序从in.txt文件中读取斐波拉契数列前20项,并计算前20项目的和,将计算所得到的和写入sum.txt文件中。在读取in.txt文件时,程序使用了BufferedReader类来逐行读取文件内容,以便于处理每一项的值。
阅读全文