М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
igoreha3
igoreha3
21.09.2022 06:15 •  Информатика

Нужна программа паскале abc которая будет считать сумму чисел, которые должны вводиться пользователем через writeln. количество чисел не известно, после последнего числа пользователь должен отметить что число было последним и расчет суммы прекратится. количество чисел не известно.

👇
Открыть все ответы
Ответ:
tikhonoffpawel
tikhonoffpawel
21.09.2022

--- Python 3.8.3 ---

n = int(input('n: \n'))

counter = 0

for coin1 in range(0, n+ 1):

  for coin2 in range(0, (n // 2) + 1):

      for coin5 in range(0, (n // 5) + 1):

          for coin10 in range(0, (n // 10) + 1):

              if coin1 * 1 + coin2 * 2 + coin5 * 5 + coin10 * 10 == n: counter += 1

print(counter)

для n в пределах 100-200 считает вроде правильно, и достаточно быстро. Что до больших значений n, мне не хватило терпения. Ненормально это, успеть попить чаю в ожидании конца работы программы в 8 строк.

При желании можно использовать как стресс-тест ЦПУ

4,4(63 оценок)
Ответ:
Elka1238
Elka1238
21.09.2022

Ну смотри... Для начала переведем из двоичного твое число в десятичное.

Смотрим с конца:

1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 + 0 * 2^4 + 1 * 2^5 = 1 + 2 + 8 + 32 = 43

Ну на самом деле я ответ и до этого знал, на питоне можно написать в интерпретаторе 0b101011 и он выдаст ответ. Расписал чтоб хоть понятна была логика. Мы идем от самого конца и каждое число двигаясь к началу мы умножаем на 2 в степени n + 1 скажем так. Ну это грубо говоря :)

43 + 38 = 81, тут все понятно...

И переводим теперь 81 в двоичную. На питоне это bin(81) = 1010001

А теперь показываю как своими ручками посчитать)

*приложил скриншот" у нас получилось 1010001 - питон не врет :)

Необходимо просто последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. И самое главное -  что число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.


Найдите сумму двоичного числа 101011 и десятичного числа 38, ответ запишите в двоичной системе счисл
4,4(75 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ