Форум » Динамическое программирование » Задание 16 » Ответить

Задание 16

Тима: Не понимаю как избавиться от ошибки Задание: Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n + 15, при n ≤ 5 F(n) = F(n//2) + n*n*n - 1, при чётных n > 5 F(n) = F(n-1) + 2*n*n + 1, при нечётных n > 5 Здесь // обозначает деление нацело. Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) содержит не менее двух цифр 8. Моя программа: [pre2]answer = 0 for x in range (1, 1000+1): a = F(x) count = 0 while '8' in str(a): count += 1 if count > 2: answer += 1 break print(answer) def F(n): if n <= 5: return n + 15 if n % 2 == 0: return F(n//2) + n*n*n else: return F(n-1) + 2*n*n + 1[/pre] Ошибка: Traceback (most recent call last): File "C:\Users\Timofey\IdeaProjects\LearnPython\.idea\Пробник Поляков\Task16.py", line 11, in <module> a = F(x) NameError: name 'F' is not defined

Ответов - 1

Тима: Все понял, функции нужно писать выше самой программы



полная версия страницы