Print("Введите n:")
n = int(input())
m = 0
for i in range(1,n):
m = m+45
if i % 2 == 1:
m = m+5
else:
m = m+15
m = m+45
print('%(h)d:%(min)02d' % {"h":9 + m // 60, "min":m % 60})
Пример:
<span>Введите n: 5
13:25</span>
Начнем с определения мин кол-ва бит год до 2100 это будет два в двенадцатой(12 бит) так как в одинадцатой не хватает немного, месяц это два в четвертой(4 бит) а день это два в пятой(5 бит) перемножаем их между собой, затем на 80 и получаем биты 12*4*5*80=19200бит коли ответ нужен в байтах, так просто делим на 8 и получаем 19200/8=2400байт
Если система счисления отличается от десятичной, то проще всего делать арифметические операции в системе по основанию, близкому к 10.
У нас 41₈+57₁₆, оба основания кратны степени двойки, поэтому перейти от одной системы счисления к другой можно через двоичную систему. из оснований 8 и 16 наиболее близко к 10 основание 8. В этой системе и будем работать.
57₁₆ = 0101 0111₂ = 1010111₂ = 1 010 111₂ = 127₈
А теперь складываем "в столбик" 41₈ и 127₈
Правила сложения - как в обычной десятичной системе, только если в десятичной следующий разряд появляется после 9, то в восьмеричной - после 7, т.е. на 2 раньше. Поэтому при сложении воьмеричных чисел, как десятичных, мы должны к результату эти 2 единицы добавить.
Итак, поразрядно.1+7=8, но 8>7 поэтому добавляем 2 и получаем 10, из которых 0 пишем и +1 в старший разряд. 4+2+1=7, а 1 просто "сносим" в результат.
41₈
+127₈
--------
170₈ = 1 111 000₂ = 1111000₂
Это и есть ответ.