Есть много примеров кода, которые можно найти на просторах интернет, как вывести последовательность чисел Фибоначчи на консоль в
C++..Я решил создать эту тему по той причине, что в моем примере кода используется оригинальный подход. Оригинальность моего подхода состоит в том, что в нем используется стандартная
C++ функция
std::exchange, применение которой в контексте генерации последовательности чисел Фибоначчи мне еще не приходилось встречать. Возможно, что я первый, кто использовал функцию
std::exchange для данной задачи.
Ниже приведена демонстрационная программа.
#include <iostream>
#include <functional>
int main()
{
while ( true )
{
std::cout << "Enter a number of fibonacci numbers to output (0 - exit): ";
size_t n;
if ( not ( std::cin >> n ) or ( n == 0 ) ) break;
std::cout << '\n';
for ( size_t a = 0, b = 1, i = 0; i < n; i++ )
{
std::cout << i << ": " << ( i == 0 ? a : b ) << '\n';
if ( i ) b += std::exchange( a, b );
}
std::cout << '\n';
}
}
Вывод программы на консоль может выглядеть, например, так
Enter the number of fibonacci numbers to output (0 - exit): 1
0: 0
Enter the number of fibonacci numbers to output (0 - exit): 2
0: 0
1: 1
Enter the number of fibonacci numbers to output (0 - exit): 3
0: 0
1: 1
2: 1
Enter the number of fibonacci numbers to output (0 - exit): 4
0: 0
1: 1
2: 1
3: 2
Enter the number of fibonacci numbers to output (0 - exit): 5
0: 0
1: 1
2: 1
3: 2
4: 3
Enter the number of fibonacci numbers to output (0 - exit): 6
0: 0
1: 1
2: 1
3: 2
4: 3
5: 5
Enter the number of fibonacci numbers to output (0 - exit): 7
0: 0
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
Enter the number of fibonacci numbers to output (0 - exit): 8
0: 0
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
Enter the number of fibonacci numbers to output (0 - exit): 9
0: 0
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
Enter the number of fibonacci numbers to output (0 - exit): 0