В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Коtик
Коtик
05.04.2021 20:25 •  Информатика

Казахстан расположен в центре континента евразие и занимает девятое место в мире по полпщади на врстоке северо и северо западе казахстана ганичт в росие на юге - с узбекистана киргизей турменимстом . но юге с китаем

Показать ответ
Ответ:
ask52
ask52
09.02.2021 12:56

Числа Фибоначчи: циклом и рекурсией

Числа Фибоначчи – это ряд чисел, в котором каждое следующее число равно сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13, ... . Иногда ряд начинают с нуля: 0, 1, 1, 2, 3, 5, ... . В данном случае мы будем придерживаться первого варианта.

Формула:

F1 = 1

F2 = 1

Fn = Fn-1 + Fn-2

Пример вычисления:

F3 = F2 + F1 = 1 + 1 = 2

F4 = F3 + F2 = 2 + 1 = 3

F5 = F4 + F3 = 3 + 2 = 5

F6 = F5 + F4 = 5 + 3 = 8

...

Вычисление n-го числа ряда Фибоначчи с цикла while

Присвоить переменным fib1 и fib2 значения двух первых элементов ряда, то есть присвоить переменным единицы.

Запросить у пользователя номер элемента, значение которого он хочет получить. Присвоить номер переменной n.

Выполнять следующие действия n - 2 раз, так как первые два элемента уже учтены:

Сложить fib1 и fib2, присвоив результат переменной для временного хранения данных, например, fib_sum.

Переменной fib1 присвоить значение fib2.

Переменной fib2 присвоить значение fib_sum.

Вывести на экран значение fib2.

Примечание. Если пользователь вводит 1 или 2, тело цикла ни разу не выполняется, на экран выводится исходное значение fib2.

fib1 = 1

fib2 = 1

n = input("Номер элемента ряда Фибоначчи: ")

n = int(n)

i = 0

while i < n - 2:

   fib_sum = fib1 + fib2

   fib1 = fib2

   fib2 = fib_sum

   i = i + 1

print(fib2)

Компактный вариант кода:

fib1 = fib2 = 1

n = int(input("Номер элемента ряда Фибоначчи: ")) - 2

while n > 0:

   fib1, fib2 = fib2, fib1 + fib2

   n -= 1

print(fib2)

Вывод чисел Фибоначчи циклом for

В данном случае выводится не только значение искомого элемента ряда Фибоначчи, но и все числа до него включительно. Для этого вывод значения fib2 помещен в цикл.

fib1 = fib2 = 1

n = int(input())

if n < 2:

   quit()

print(fib1, end=' ')

print(fib2, end=' ')

for i in range(2, n):

   fib1, fib2 = fib2, fib1 + fib2

   print(fib2, end=' ')

print()

Пример выполнения:

10

1 1 2 3 5 8 13 21 34 55  

Рекурсивное вычисление n-го числа ряда Фибоначчи

Если n = 1 или n = 2, вернуть в вызывающую ветку единицу, так как первый и второй элементы ряда Фибоначчи равны единице.

Во всех остальных случаях вызвать эту же функцию с аргументами n - 1 и n - 2. Результат двух вызовов сложить и вернуть в вызывающую ветку программы.

def fibonacci(n):

   if n in (1, 2):

       return 1

   return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(10))

Допустим, n = 4. Тогда произойдет рекурсивный вызов fibonacci(3) и fibonacci(2). Второй вернет единицу, а первый приведет к еще двум вызовам функции: fibonacci(2) и fibonacci(1). Оба вызова вернут единицу, в сумме будет два. Таким образом, вызов fibonacci(3) возвращает число 2, которое суммируется с числом 1 от вызова fibonacci(2). Результат 3 возвращается в основную ветку программы. Четвертый элемент ряда Фибоначчи равен трем: 1 1 2 3.

Объяснение:

0,0(0 оценок)
Ответ:
mashka2511
mashka2511
22.11.2022 06:38

#include <iostream>

using namespace std;

int main() {

int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;

int result = 0;

setlocale(LC_ALL, "Russian");

cout << "Проверим ваши знания таблицы умножения!\n";

 cout << "Сколько будет 5 * 5? ";

 cin >> a1;

 if (a1 == 25) {

  result++;

 }

 cout << "Сколько будет 2 * 5? ";

 cin >> a2;

 if (a2 == 10) {

  result++;

 }

 cout << "Сколько будет 3 * 5? ";

 cin >> a3;

 if (a3 == 15) {

  result++;

 }

 cout << "Сколько будет 3 * 2? ";

 cin >> a4;

 if (a4 == 6) {

  result++;

 }

 cout << "Сколько будет 4 * 6? ";

 cin >> a5;

 if (a5 == 24) {

  result++;

 }

 cout << "Сколько будет 2 * 2? ";

 cin >> a6;

 if (a6 == 4) {

  result++;

 }

 cout << "Сколько будет 7 * 8? ";

 cin >> a7;

 if (a7 == 56) {

  result++;

 }

 cout << "Сколько будет 8 * 5? ";

 cin >> a8;

 if (a8 == 40) {

  result++;

 }

 cout << "Сколько будет 7 * 7? ";

 cin >> a9;

 if (a9 == 49) {

  result++;

 }

 cout << "Сколько будет 3 * 8? ";

 cin >> a10;

 if (a10 == 24) {

  result++;

 }

 if (result == 10) {

  cout << "Отлично!";

 }

 else if (result == 9 || result == 8) {

  cout << "Хорошо";

 }

 else if (result == 7 || result == 6) {

  cout << "Удовлетворительно";

 }

 else cout << "Плохо";  

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота