купец на рынок рулон сукна длиной n вершков, но для уплаты пошлины ему нужно указать длину сукна в саженях, аршинах, пядях и вершках. ему – переведите длину сукна, записанного в вершках в сажени, аршины, пяди и вершки.
известно, что мера длины сажень состояла из трёх аршин. один аршин делился на четыре пяди. одна пядь состояла из 4 вершков.
напишите программу, которая купцу перевести длину сукна (вершки) в сажени, аршины, пяди и вершки.
9 программа получает на вход одно натуральное число n, не превосходящее 2 10 , –
длину сукна в вершках.
программа должна вывести 4 целых неотрицательных числа s, a, p, v – количество саженей, аршин, пядей и вершков, в сумме ровно n вершков,
при этом значение a должно быть меньше 3 (т. к. 3 аршина одну сажень), значение p должно быть меньше 4 (четыре пяди один аршин),
значение v должно быть меньше 4 (четыре вершка одну пядь).
комментарии:
вашу программу будет проверять робот, то есть не нужно писать диалоговую программ. если программа получает на вход одно число, значит его нужно просто считать (например x=int( cin » x; , read(x) и т.д.)
=== 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)