Другие языки программирования и технологии

С++ Можете объяснить принцип работы данного кода?

#include
using namespace std;

void main()
{
setlocale(0, "");
cout << "13. Показать на экране все числа Фибоначчи в диапазоне от 0 до 10.000.000.\n ";
unsigned long a = 0;
unsigned long b = 1;
while (a < 9000000)
{
a = a + b;
b = a - b;
cout << a << "\t";
}
}
Что тебе непонятно в коде, содержащем одно сравнение и две арифметические операции? Что именно требует пояснения?
Александр Козырев
Александр Козырев
88 854
Лучший ответ
Евгений Григорьев я не понимаю, почему в while указано a<9000000, но показывает больше. И то, почему cout << a << "\t"; выполняется не на каждом числе a (1, 2, 3, 4, 5, 6 и т. д.)
#include - подключение библиотеки, имя которой съедено M@il.Ответы. Подключение библиотеки для ввода вывода на консоль iostream.
using namespace std; - указание пространства имён
void main() - объявление основной функции main с возвращаемым значением пустота void.
Дальше идёт тело основной функции { }
setlocale(0, ""); - для поддержки консолью русских символов, кириллицы.
cout - экземпляр класса ostream для вывода на консоль.
\n - символ переноса строки
"..." - литерал строкового типа
unsigned long a = 0; - объявление и инициализация значением 0 переменной с именем a
unsigned - беззнаковое целое
long - длинное
while - оператор цикла по условию
a < 9000000 - условие исполнения тела цикла, возвращает bool - значение оператору while
Тело цикла исполняется пока истинно условие, пока оператор < возвращает true
a = a + b; - a стало равно a текущее + b
\t - табуляция - чтобы числа выводились ровно, с большими промежутками. В некоторых случаях лучше с этой целью использовать setw() из библиотеки iomanip
9000000 в условии цикла, так как сперва проверили условие, a оказалось меньше 9000000, то выполнив ещё итерацию цикла, оно перемахивает 9000000. При следующей проверки условия a < 9000000, оно окажется не верно и цикл завершится. 9000000 наверно подбором нашли.
Женя Войнов
Женя Войнов
8 552