Вот объяснение последовательности Фибоначчи на C++, а также несколько методов ее создания:
Метод 1: итеративный подход
#include <iostream>
int fibonacci(int n) {
if (n <= 1)
return n;
int prev = 0;
int current = 1;
for (int i = 2; i <= n; i++) {
int temp = current;
current = prev + current;
prev = temp;
}
return current;
}
int main() {
int n = 10; // Change this value to generate Fibonacci sequence up to a different number
for (int i = 0; i <= n; i++) {
std::cout << fibonacci(i) << " ";
}
return 0;
}
Метод 2: рекурсивный подход
#include <iostream>
int fibonacci(int n) {
if (n <= 1)
return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n = 10; // Change this value to generate Fibonacci sequence up to a different number
for (int i = 0; i <= n; i++) {
std::cout << fibonacci(i) << " ";
}
return 0;
}
Метод 3: метод мемоизации (динамическое программирование)
#include <iostream>
#include <vector>
std::vector<int> memo;
int fibonacci(int n) {
if (n <= 1)
return n;
if (memo[n] != -1)
return memo[n];
memo[n] = fibonacci(n - 1) + fibonacci(n - 2);
return memo[n];
}
int main() {
int n = 10; // Change this value to generate Fibonacci sequence up to a different number
memo.resize(n + 1, -1);
for (int i = 0; i <= n; i++) {
std::cout << fibonacci(i) << " ";
}
return 0;
}
В приведенных выше методах nпредставляет количество чисел Фибоначчи, которые необходимо сгенерировать. Вы можете изменить его значение, чтобы сгенерировать последовательность до другого числа. В первом методе используется итеративный подход, во втором — рекурсивный, а в третьем — запоминание для оптимизации рекурсивного подхода.