Нозадзе_Новиков392
?>

купец на рынок рулон сукна длиной 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) и т.д.)​

Информатика

Ответы

alex6543213090

=== 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)

natalia595977

/*Простейшая реализация. Подразумевается, что вводятся корректные данные, n вмещается в int, а a и результат - в double. Визуализация зависимости числа операций умножения от степени n для чисел от 0 до 5000 прилагается */

#include <iostream>

double s_pow(double a, int power)

{

       if (power == 0)

       {

               return 1;

       }

       if (power % 2 == 0)

       {

               return s_pow(a * a, power / 2);

       }

       return a * s_pow(a, power - 1);

}

int main()

{

       double a;

       int n;

       std::cin >> a >> n;

       std::cout << s_pow(a, n);

       return 0;

}


Быстрое возведение в степень Возводить в степень можно гораздо быстрее, чем за n умножений! Для этог

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

купец на рынок рулон сукна длиной 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) и т.д.)​
Ваше имя (никнейм)*
Email*
Комментарий*