Нужна срочно помощь по информатике 10 класс, циклы массивы и другие
Лучший друг Эмилии Макс вытащил её погулять в парк. Пока мальчик пинал мяч, кормил уточек и снимал с дерева котёнка, Эмилия делала наброски деревьев в большом блокноте.
В 1-й день она нарисовала 2 дерева, во 2-й — 4 дерева, в 3-й — 8 деревьев, в k-й день она нарисовала 2 ** k деревьев.
Есть число n. На какой день общее количество деревьев в блокноте впервые стало строго больше n?
Ввод 52 63
Примечание: в первый день Эмилия нарисовала всего 2 дерева, во второй 2 + 4 = 6 деревьев (6 больше 5), в третий 2 + 4 + 8 = 14 деревьев (14 больше 6).
2. Вася скучает на даче. Его папа поставил на улице стол для настольного тенниса и учит Васю играть. Васина сестра Соня отмечает в тетради, кто выиграл: если Вася, она ставит "+", если папа — "-". Есть строка с отметками за все партии. Выведи, сколько раз выиграл Вася.
3. Соня играет в разведчиков. Она записала на бумаге секретную шифровку и передала дружественному агенту Васе. В шифровке слитно записаны числа от 0 до n: 0123...
Есть число n. Выведи шифровку Сони.
4. Вечером в парке Макс увидел очень странную собаку. Она шла вдоль аллеи и лаяла на фонари — но не на все подряд, а только на каждый 4-й (через 3). Всего фонарей n, и на последний собака залаяла.
Есть число n. Выведите произведение номеров всех фонарей, на которые лаяла собака.
Ввод Вывод 8 32 55
Примечание: для n = 8 из фонарей 1 2 3 4 5 6 7 8 собака лаяла на 4-й и 8-й фонари. Произведение их номеров равно 4 x 8 = 32. Для n = 5: 1 2 3 4 5 собака лаяла на 1-й и 5-й фонари. Произведение равно 1 x 5 = 5.
5. Эмилия собралась объяснить Максу задачу по алгебре и даже нарисовала числовую прямую. Чтобы увильнуть от скучных примеров, Макс предложил игру: пусть Эмилия отмечает точки-корабли на прямой, а Макс «взрывает» либо все корабли с положительными координатами, либо все с отрицательными. Макс выигрывает, если ему удалось взорвать всё.
Вывод
Ввод
-1 -2 -3 0
1 1 -1 -1 0
Ввод 4
Есть последовательность (ненулевых) чисел, заканчивающаяся нулем. Выиграл ли Макс? Выведите "ДА", если все они с одним знаком, и "НЕТ", если среди них есть и положительные, и отрицательные.
Вывод ДА
НЕТ
Лена хочет усложнить свою компьютерную игру о подземельях и добавить обрывы. Она рисует их символами +.
Есть число n. Выведите «обрыв» высотой n, состоящий из плюсов (как в тесте).
1) Надо найти двоичный логарифм.
from itertools import count, takewhile
n = int(input())
*_, k = takewhile(lambda i: (1 << i) - 2 <= n, count(2))
print(k)
2) Считаем плюсы в строчке.
print(input().count('+'))
3) Форматируем диапазон в строку.
print(''.join(map(str, range(int(input()) + 1))))
4) Произведение диапазона с шагом.
from math import prod
n = int(input())
print(prod(range((n + 3) % 4 + 1, n + 1, 4)))
5) Проверка, что все числа - одного знака с первым числом (т.е. побитовый XOR с первым числом больше или равен 0).
Не совсем понятно, как вводятся числа - на одной строке или на отдельных. Поэтому в программе поддерживается произвольное разбиение чисел на строки.
from itertools import chain, takewhile
ns = takewhile(bool, map(int, chain.from_iterable(map(str.split, iter(input, None)))))
first = next(ns)
print(('НЕТ', 'ДА')[all(map((0).__le__, map(first.__xor__, ns)))])
Числа, введённые после нуля, учитываться не будут. Также программа прекратит принимать числа, если станет очевиден проигрыш (т.е. попадётся число, знак которого не совпадает с первым). Пример:
-1 -2 -3
-4 -5 -6
0 9
ДА
(число 9 не учтено, т.к. перед ним находится 0, а все числа до 0 - одного знака)
Ещё пример:
-1 -2 3
НЕТ
(остальные числа последовательности неважны, т.к. 3 не совпадает по знаку с первым числом)