В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Elnarikys
Elnarikys
16.02.2022 07:57 •  Информатика

Mikrasoft worddasturini oynasining umumiy korinishi

Показать ответ
Ответ:
SargonTM
SargonTM
07.06.2020 06:48

# Задание 1

sumOfElements = 0

numberOfElements = 0

currentNumber = int(input())

while currentNumber != 0:

   sumOfElements += currentNumber

   numberOfElements += 1

   currentNumber = int(input())

if sumOfElements != 0:

   res = sumOfElements / numberOfElements

   res = round(res, 1)

print(res)

# Задание 2

arr = []  # array for divisors

number = int(input())

for i in range(1, number):

   if number % i == 0:

       arr.append(i)

print(sum(arr))

детский вариант:

# Задание 1

res = 0

summ = 0

n = 0

a = int(input())

while a != 0:

   summ = summ + a

   n = n + 1

   a = int(input())

if summ != 0:

   res = summ / n

   res = round(res, 1)

print(res)

# Задача 2

summ = 0

n = int(input())

for i in range(1, n):

   if n % i == 0:

       summ = summ + i

print(summ)

0,0(0 оценок)
Ответ:
dmmkuplinov
dmmkuplinov
07.05.2020 17:55

(см. объяснение)

Объяснение:

Решая задачу "в лоб", нам потребовалось бы умножить число само на себя ровно 147 раз. Это много, потому попробуем оптимизировать алгоритм. Заметим, что 147_{10}=10010011_{2}, а x^{147}=x^{128}\times x^{16}\times x^2\times x^1. Изначально имеем число x. Пусть y=147 - степень. Пусть res=1 - наш будущий ответ. На каждой итерации цикла будем умножать x сам на себя, а y целочисленно делить на 2. При этом заметим, что когда y\%20, то нам надо умножить текущий результат r на x. Таким образом, всего за 8 итераций (вместо 147!) мы можем возвести некоторое число в степень 147.

Покажем, как написать это на C++:

#define ll long long

ll bpow(ll x, ll y) {

   ll r = 1;

   while (y > 0) {

       if (y % 2 > 0) {

           r *= x;

       }

       x *= x;

       y /= 2;

   }

   return r;

}

Задание выполнено!

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота