c++使用文本文件保存斐波那契数列前40个数保存在fib.txt中
时间: 2024-02-11 12:07:10 浏览: 91
可以使用C++来生成斐波那契数列,并将结果写入文件fib.txt中。以下是示例代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// 生成斐波那契数列
int fib[40];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < 40; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 将结果写入文件
ofstream fout("fib.txt");
for (int i = 0; i < 40; i++) {
fout << fib[i] << endl;
}
fout.close();
return 0;
}
```
执行完毕后,fib.txt文件中将包含斐波那契数列前40个数。
相关问题
编写程序,使用文本文件将斐波那契数列前40个数保存在fib.txt文件中。然后打开这个文件,依次用数列的前一项除以后一项,将除的结果保存在fibst.txt中。打开文件观结果。再用二进制文件的方式重新实现一遍,打开文件观察结果。用C++来写代码
下面是用文本文件实现的C++代码:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
const int N = 40;
int fib[N];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < N; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
ofstream fout("fib.txt");
if (!fout) {
cout << "Failed to open fib.txt" << endl;
return 1;
}
for (int i = 0; i < N; i++) {
fout << fib[i] << endl;
}
fout.close();
ifstream fin("fib.txt");
if (!fin) {
cout << "Failed to open fib.txt" << endl;
return 1;
}
ofstream fout2("fibst.txt");
if (!fout2) {
cout << "Failed to open fibst.txt" << endl;
return 1;
}
int prev, curr;
fin >> prev;
while (fin >> curr) {
double ratio = (double) prev / curr;
fout2 << ratio << endl;
prev = curr;
}
fin.close();
fout2.close();
return 0;
}
```
下面是用二进制文件实现的C++代码:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
const int N = 40;
int fib[N];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < N; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
ofstream fout("fib.bin", ios::binary);
if (!fout) {
cout << "Failed to open fib.bin" << endl;
return 1;
}
fout.write((char*) fib, N * sizeof(int));
fout.close();
ifstream fin("fib.bin", ios::binary);
if (!fin) {
cout << "Failed to open fib.bin" << endl;
return 1;
}
ofstream fout2("fibst.bin", ios::binary);
if (!fout2) {
cout << "Failed to open fibst.bin" << endl;
return 1;
}
int prev, curr;
fin.read((char*) &prev, sizeof(int));
while (fin.read((char*) &curr, sizeof(int))) {
double ratio = (double) prev / curr;
fout2.write((char*) &ratio, sizeof(double));
prev = curr;
}
fin.close();
fout2.close();
return 0;
}
```
注意,在写入和读取二进制文件时需要使用 `ios::binary` 参数,而且要用 `write` 和 `read` 函数分别写入和读取二进制数据。
C++程序中怎样输出Fibonacci数列的前40个
Fibonacci数列指的是第一个数是0,第二个数是1,之后每一个数都是前两个数的和。要输出Fibonacci数列的前40个数,可以使用循环语句和数组。具体实现方式如下:
```c
#include <stdio.h>
int main() {
int n = 40;
int fib[n]; // 定义一个长度为40的数组,用来存放Fibonacci数列
int i;
fib[0] = 0;
fib[1] = 1;
for (i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算每个数的值,存入数组中
}
// 输出Fibonacci数列
for (i = 0; i < n; i++) {
printf("%d ", fib[i]);
}
return 0;
}
```
输出结果为:
```
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155
```
阅读全文