Предмет: Информатика, автор: artemer2004

Алгоритм вычисления функции F(n) задан следующими соотношениями:

F(n) = n при n ≤ 3;

F(n) = n + F(n – 1) при чётных n > 3;

F(n) = n · n + F(n – 2) при нечётных n > 3;

Определите количество натуральных значений n, при которых F(n) меньше, чем 108.

Ответы

Автор ответа: vimmortal2
1

Программа:

Python:

from sys import maxsize

def F(n):

   if n <= 3:

       return n

   elif n > 3 and n % 2 == 0:

       return n + F(n - 1)

   else:

       return n * n + F(n - 2)

count = 0

for n in range(1, maxsize):

   if F(n) < 108:

       count += 1

   else:

       break

print(count)

Объяснение:

В начале импортируем метод maxsize из модуля sys. Объявляем функцию F(n), которая согласно условию возвращает некие значения. После - регистрируем переменную count для поиска количества чисел, а с помощью цикла проходимся по всем n от 1 до большого числа (около 2 млрд) до тех пор, пока не найдётся элемент, при котором значение функции F(n) будет больше 108. Все значения функции идут от меньшего к большему, поэтому остановка цикла, если попался элемент больше 108 - верное решение. В конце выводится кол-во этих чисел.

Вывод: 8 чисел.

1

2

3

7

28

34

77

85

Похожие вопросы
Предмет: География, автор: Суперкрасава228
Предмет: Математика, автор: segase03