318(10) -> 100111110(2)
Объяснение:
Mod (вычисление остатка от целочисленного деления)
318 / 2 = 159. 318 mod 2 = 0
159 / 2 = 79. 159 mod 2 = 1
79 / 2 = 39. 79 mod 2 = 1
39 / 2 = 19. 39 mod 2 = 1
19 / 2 = 9. 19 mod 2 = 1
9 / 2 = 4. 9 mod 2 = 1
4 / 2 = 2. 4 mod 2 = 0
2 / 2 = 1. 2 mod 2 = 0
1 / 2 = 0. 1 mod 2 = 1
174(10) -> 10101110(2)
Объяснение:
174 / 2 = 87. 174 mod 2 = 0
87 / 2 = 43. 87 mod 2 = 1
43 / 2 = 21. 43 mod 2 = 1
21 / 2 = 10. 21 mod 2 = 1
10 / 2 = 5. 10 mod 2 = 0
5 / 2 = 2. 5 mod 2 = 1
2 / 2 = 1. 2 mod 2 = 0
1 / 2 = 0. 1 mod 2 = 1
202(10) -> 11001010(10)
Объяснение:
202 div 2 = 101. 202 mod 2 = 0
101 div 2 = 50. 101 mod 2 = 1
50 div 2 = 25. 50 mod 2 = 0
25 div 2 = 12. 25 mod 2 = 1
12 div 2 = 6. 12 mod 2 = 0
6 div 2 = 3. 6 mod 2 = 0
3 div 2 = 1. 3 mod 2 = 1
1 div 2 = 0. 1 mod 2 = 1
408(10) -> 110011000(2)
Объяснение:
408 div 2 = 204. 408 mod 2 = 0
204 div 2 = 102. 204 mod 2 = 0
102 div 2 = 51. 102 mod 2 = 0
51 div 2 = 25. 51 mod 2 = 1
25 div 2 = 12. 25 mod 2 = 1
12 div 2 = 6. 12 mod 2 = 0
6 div 2 = 3. 6 mod 2 = 0
3 div 2 = 1. 3 mod 2 = 1
706(10) -> 1011000010(2)
Объяснение:
706 div 2 = 353. 706 mod 2 = 0
353 div 2 = 176. 353 mod 2 = 1
176 div 2 = 88. 176 mod 2 = 0
88 div 2 = 44. 88 mod 2 = 0
44 div 2 = 22. 44 mod 2 = 0
22 div 2 = 11. 22 mod 2 = 0
11 div 2 = 5. 11 mod 2 = 1
5 div 2 = 2. 5 mod 2 = 1
2 div 2 = 1. 2 mod 2 = 0
1 div 2 = 0. 1 mod 2 = 1
Ошибок тут достаточно, по всем пройдемся.
Первая ошибка, переменная названа как встроенная функция в Python, так делать не нужно.
Вторая ошибка, забыл ограничить if, из-за которого не будет выполняться elif. Меняем его на:
if (sum>=500) and (sum<1000)
Третья ошибка, расчет финальной цены неверный, если использовать вариант, который дан сейчас, то мы найдем процент от этой суммы, а не сумму с начисленными процентами. Меняем на:
final_sum = sums * (1+first_sale)
final_sum = sums * (1+second_sale)
Четвертая ошибка, почему у нас вывод финальной суммы через else? Получается, что если выполняются условия выше, то не выводится сумма. Этот вывод мы можем опустить ниже, а в else написать, что ввели неверные данные (если конечно подразумевается, что пользователь не должен вводить число меньшее 500), либо в elif засунуть эту строку, полной задачи у меня нет, поэтому сам с этим разберешься.
Пятая ошибка, мы не можем сложить строку с числом, нам нужно преобразовать нашу переменную к строке с str().
Исправленный код:
sums = int(input("Введите сумму покупки:"))
first_sale = 0.03
second_sale = 0.05
if sums >= 500 and sums < 1000:
final_sum = sums * (1+first_sale)
print("Финальная сумма равна: " + str(final_sum))
elif sums >= 1000:
final_sum = sums * (1+second_sale)
print("Финальная сумма равна: " + str(final_sum))
else:
print("Введены неверные данные")
Я не уверен в решении от слова совсем, но смотри... Читаем внимательно условие.
...КАЖДАЯ КОМАНДА СЫГРАЛА С КАЖДОЙ. Из ВСЕХ участвовавших команд 20% команд НЕ СМОГЛИ ОДЕРЖАТЬ ПОБЕДУ НИ В ОДНОМ ИЗ МАТЧЕЙ...
Теперь включаем логику. Допустим у нас есть 10 команд, которые сыграли между собой. 20% от 10 - 2. Получается у нас имеется 2 команды, которые проиграли ВО ВСЕХ МАТЧАХ. А теперь задаемся вопросом "это как?".
Если с остальными командами все понятно, то как они играя между собой могли проиграть 2 сразу? (Ведь очевидно, что может быть только один победитель и только один проигравший в матче) По условию - ничьи не было. Значит делаем вывод, что искать больше одной команды, которая проиграла всем - некорректно.
Число команд, которая дает нам от 20% одного аутсайдера - 5. Получаем, что если Катя сделала фото с каждой командой на турнире, то постов у нее будет тоже 5. А команда, которая проиграла всем - одна единственная.
.........................................................