Числа Фибоначчи в С++
Особенность механизма выхода из оператора switch (имеется в виду
выход из оператора с помощью инструкции Ьгеак) позволяет объединять несколько сазе-условий. В процессе выполнения программы пользователю предлагается ввести целое число в диапазоне от 0 до 10. Число считывается с клавиатуры и выполняется проверка на предмет того, является ли оно нулем и принадлежит ли последовательности чисел Фибоначчи. Напомним, что последовательность
Фибоначчи получается так: первые два числа последовательности равны 1, а каждое последующее равно сумме двух предыдущих. Начальные числа
в последовательности Фибоначчи, таким образом, равны 1, 1, 2, 3, 5 и 8 (это те числа, что попадают в диапазон от 0 до 10). После ввода числа с клавиатуры оно записывается в целочисленную переменную n Значение переменной проверяется в операторе switch(). Первый
сазе-блок оператора соответствует ситуации, когда пользователем введено нулевое значение- Если значение переменной n равно 0, на экран выводится сообщение "The number is zero". Благодаря инструкции Ьгеак после оператора вывода указанного сообщения, работа switch()-оператора на этом завершится. Если же было введено ненулевое значение, первый сазе-блок не выполняется. Вместо этого будет продолжена проверка значения переменной n на предмет совпадения с одним из значений 1,2,3,5 или 8. Обращаем внимание читателя на то обстоятельство, что саsе-блоки для значений 1, 2,
3 и 5 являются пустыми, т.е. после инструкции сазе с указанием соответствующего значения сразу следует следующая сазе-инструкция. Поскольку в switch()-операторе команды выполняются до первой инструкции Ьгеак (или до окончания всего оператора), такой синтаксис приводит к тому, что для значений 1,2,3,5,8 переменной n выполняется одна и та же последовательность команд - это те команды, что указаны в саsе-блоке для значения переменной n равного 8: появится сообщение "This is Fibonacci number" и
работаswitch()-оператора будет завершена (из-за инструкции Ьгеак). Например, если пользователь ввел число 1, должны выполняться все команды после инструкции сазе 1: в switch(). Команды выполняются до первой инструкции Ьгеак (или, если не встретится ни одна инструкция Ьгеак, до конца всего оператора). Поскольку первая инструкция Ьгеак встречается в блоке сазе 8 :, будут выполнены все команды, находящиеся между инструкцией сазе 1: и этой инструкцией Ьгеак.
Наконец, если пользователь ввел ненулевое число, не совпадающее с числа ми 1, 2, 3, 5 и 8, выполняется блок команд, размещенных после инструкции default. В данном случае там всего одна команда, которой на экран выво дится сообщение "This is integer number".
#includeusing namespace std; int main(){ int n; cout<<"Enter number from 0 to 10: "; cin>>n; switch(n){ case 0: cout<<"The number is zero!\n"; break; case 1: case 2: case 3: case 5: case 8: cout<<"This is Fibonacci number!\n"; break; default: cout<<"This is integer number!\n"; } return 0; }