Дано: Учеб - 200 стр 1 стр - 35 строк 1 строка - 50 символов Решение: 1) 50*35=1750 (символов) - на одной странице 2) 1750*200=350000 (символов) - в учебнике 3) так как в задаче не указан метод кодировки, то будем использовать кодировку ASCII ( в ней 1 символ равен 1 байту, также есть кодировка UNICODE, в которой 1 символ равен 2 байтам). Итак, 1 символ = 1 байту, тогда 350000*1=350000 (байт) 350000/1024 = 341,7 (Кб) - объём одного учебника. 4) переведём 2 Гб в Кб 2 Гб*1024 = 2048 (Мб) 2048*1024= 2 097 152 (Кб) 5) Разделим полученный объём на объём одного учебника: 2 097 152/341,7 = 6137 (учебников)
Учеб - 200 стр
1 стр - 35 строк
1 строка - 50 символов
Решение:
1) 50*35=1750 (символов) - на одной странице
2) 1750*200=350000 (символов) - в учебнике
3) так как в задаче не указан метод кодировки, то будем использовать кодировку ASCII ( в ней 1 символ равен 1 байту, также есть кодировка UNICODE, в которой 1 символ равен 2 байтам).
Итак, 1 символ = 1 байту, тогда
350000*1=350000 (байт)
350000/1024 = 341,7 (Кб) - объём одного учебника.
4) переведём 2 Гб в Кб
2 Гб*1024 = 2048 (Мб)
2048*1024= 2 097 152 (Кб)
5) Разделим полученный объём на объём одного учебника:
2 097 152/341,7 = 6137 (учебников)
=== Python 3.8.3 ===
def fastExp(b, n):
def even(n):
if n % 2 == 0:
return True
return False
if n == 0:
return 1
if even(n):
#Можно было написать return fastExp(b, b/2) ** 2, но операцию возведения в степень использовать нам запретили.
res = fastExp(b, n/2)
return res*res
return b*fastExp(b, n-1)
def main():
base = float(input())
exp = int(input())
print(fastExp(base, exp))
if __name__ == "__main__":
main()
Предложенные тесты проходит. Сам алгоритм быстрого возведения в степень реализован в виде функции fastExp(b, n)