Автор | Сообщение |
|
Отправлено: 09.01.23 11:15. Заголовок: Не сходится ответ, в чем проблема? (номер 58 задание 16)
Привет, буду благодарен всем за помощь, написал код, вроде условиям удовлетворяет, или как? Условие: 58) Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = n • n + 3 • n + 5, при n > 30 F(n) = 2 • F(n+1) + F(n+4), при чётных n 30 F(n) = F(n+2) + 3 • F(n+5), при нечётных n 30 Определите количество натуральных значений n из отрезка [1; 1000], при которых значение F(n) содержит не менее двух значащих цифр 0 (в любых разрядах). #zadanie 58 from functools import lru_cache @lru_cache def f(n): if n>30: return n*n*+3*n+5 elif n<=30 and n%2==0: return 2*f(n+1)+f(n+4) elif n<=30 and n%2!=0: return f(n+2)+3*f(n+5) k=0 for n in range (1, 1001): c=str(f(n)) if c.count("0")>=2: k+=1 print(k) #asnwer: 249
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 11.01.23 07:03. Заголовок: def f(n): if n &..
def f(n): if n > 30: return n * n + 3 * n + 5 if n % 2 == 0: return 2 * f(n + 1) + f(n + 4) return f(n + 2) + 3 * f(n + 5) k = 0 for i in range(1, 1001): if str(f(i)).count('0') >= 2: k += 1 print(k) Выдает 77, как и в ответах
|
|
|
|
Отправлено: 11.01.23 16:20. Заголовок: странно, возможно, я..
странно, возможно, я опечатался, спасибо за ответ!
|
|
|
|