
Python
Напишите программу на питоне
Главная проблема заключается в переборе значений от 1 до 1000 и в нахождении числел с двумя восьмерками


for i in range(1, 1000+1):
стандартный цикл от 1 до 1000 включительно
если число превратить в строку, то искать восьмёрки удобнее
s = str(123)
стандартный цикл от 1 до 1000 включительно
если число превратить в строку, то искать восьмёрки удобнее
s = str(123)
def f(n): return n + 15 if n <= 5 else f(n - 1) + 2 * n * n + 1 if n % 2 else f(n // 2) + n * n * n - 1
print(sum(1 for i in range(1, 1001) if str(f(i)).count('8') >= 2))
print(sum(1 for i in range(1, 1001) if str(f(i)).count('8') >= 2))
Совершенно не обязательно тут числа в строки превращать, а для машины ещё не известно что быстрее и проще, пока время исполнения не измерить. Это для человека проще в цифровой десятичной записи числа обнаружить не менее двух восьмёрок, но считает то машина!
И краткость программы вовсе не означает, что она лучше.
def F(n):
----if n <= 5: return n + 15
----if n % 2: return F(n - 1) + 2 * n * n + 1
----else: return F(n // 2) + n * n * n - 1
def G(n):
----k = 0
----while n > 0:
--------if n % 10 == 8:
------------k += 1
------------if k == 2: return True
--------n //= 10
----return False
k = 0
for i in range(1, 1001):
----if G(F(i)): k += 1
print(k)
Вобщем 164 получается.
И краткость программы вовсе не означает, что она лучше.
def F(n):
----if n <= 5: return n + 15
----if n % 2: return F(n - 1) + 2 * n * n + 1
----else: return F(n // 2) + n * n * n - 1
def G(n):
----k = 0
----while n > 0:
--------if n % 10 == 8:
------------k += 1
------------if k == 2: return True
--------n //= 10
----return False
k = 0
for i in range(1, 1001):
----if G(F(i)): k += 1
print(k)
Вобщем 164 получается.
Похожие вопросы
- Напиши программу по питону
- Напишите программу на питоне
- Написать программы на питоне
- Решить задачу 6 написать программу на Питоне
- Программирование на питон, нужно написать программу
- Напишите пж программу на Питоне
- Запуск программы через питон
- Помогите программу на Питоне правильно составить.
- Я в отчаяние ,буду очень благодарна,если сможете написать на языке питона ?
- Программа на ПИТОНе нужна
Def f(n):
For i in range(1,1000+1):
If n<=15: и т. д.?