c++斐波那契额数列跳过偶数用std
时间: 2024-04-30 07:20:32 浏览: 61
可以使用标准库中的 `std::vector` 来实现跳过偶数的斐波那契数列。具体的实现如下:
```c++
#include <iostream>
#include <vector>
std::vector<int> fibonacci(int n) {
std::vector<int> fib;
fib.push_back(1);
fib.push_back(1);
for (int i = 2; i < n; ++i) {
int f = fib[i - 1] + fib[i - 2];
if (f % 2 == 0) {
++i;
} else {
fib.push_back(f);
}
}
return fib;
}
int main() {
int n = 10;
std::vector<int> fib = fibonacci(n);
std::cout << "Fibonacci sequence with odd numbers only: ";
for (int i = 0; i < fib.size(); ++i) {
std::cout << fib[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
这段代码首先定义了一个 `fibonacci()` 函数,它接受一个参数 `n` 表示要生成的斐波那契数列的长度。然后它创建了一个空的 `std::vector` 对象 `fib` 来存放斐波那契数列。
接下来,它向 `fib` 中添加了前两个斐波那契数 1 和 1。然后,它使用一个循环来生成剩余的斐波那契数,直到 `fib` 的长度达到 `n`。在循环中,它首先计算下一个斐波那契数 `f`,然后检查它是否为偶数。如果是偶数,那么它会将循环变量 `i` 加 1,跳过一个奇数位。否则,它会将 `f` 添加到 `fib` 中。
最后,它在 `main()` 函数中调用 `fibonacci()` 函数来生成斐波那契数列,并使用一个循环来打印出所有的奇数。
阅读全文