katya022
25.07.2022 04:31

Переделайте программу из "игра для : складывай двузначные" так, чтобы в случае неверного ответа пользователя программа не давала следующий пример, а давала снова решить текущий до тех пор, пока пользователь не введет верный ответ или не закончатся попытки.

также, задайте количество попыток равным 3, а не 2.
формат входных данных
для каждой заданной программой суммы входные данные:

первая строка - первое слагаемое суммы (от 10 до 99)

вторая строка - второе слагаемое суммы (от 10 до 99)

следующие строки - попытки пользователя отгадать число.

формат выходных данных
сообщения программы
пример:
11
36
46
46
47
15
49
63
enter sum of 11 and 36
wrong! lives left: 2
enter sum of 11 and 36
wrong! lives left: 1
enter sum of 11 and 36
right!
enter sum of 15 and 49
wrong! lives left: 0
good game. your score: 1

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
парацетомол1
07.05.2023 09:33

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

0,0(0 оценок)
Ответ:
Мнмтшоеа
07.05.2023 09:33

/*Простейшая реализация. Подразумевается, что вводятся корректные данные, 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 умножений! Для этог
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота