46/2=23 остаток 0
23/2 = 11 остаток 1
11/2 = 5 остаток 1
5/2 = 2 остаток 1
2/2 = 1 остаток 0
Запишем остатки снизу вверх учитывая единицу, которую мы получили при делении 2 на 2: 101110
Для перевода числа из десятичной СС в двоичную нужно:
1. Выполнить деление этого числа и если его результат будет равен или больше 2, то выполнить деление этого результата. Обязательно запиши остаток от каждого деления.
2. Запиши все остатки начиная снизу, начни с результата последнего деления. остальные результаты писать в ответ не нужно.
https://onlinegdb.com/S1IjQ7SUU --- Код на Python в песочнице
Если нужен сам код сразу - она ниже (про отступы не забудь, если будешь копировать прямо отсюда):
row = str(input("Enter your math expression: "))
a = []
res = 0
for i in range(len(row)):
a.append(row[i:i+1])
# print(a[i]) -- Если хочешь посмотреть на результаты
# посимвольного разделения строки
# (больше для себя комментарий делал)
for i in range(len(row)):
if (a[i] == "-"):
res = res - (int(a[i+1]))
elif (a[i] == "+"):
res = res + (int(a[i+1]))
elif (i == 0):
res = res + (int(a[i]))
print("Resul of your math expression: ",res)
Если что, результати с консоли вывода тоже прикрепил
Удачи там с Python-ом ))
На питоне
Объяснение:
s = input();
for p in range(5):
a = input();
n = 1;
q = 0;
i = 0;
f = 1;
while q < len(s) and i < len(a) and f and n:
if s[q] == '?':
i += 1;
q += 1;
elif s[q] == '*':
n = 0;
else:
if s[q] != a[i]:
f = 0;
i += 1;
q += 1;
if n == 0:
for w in range(-1, -(len(s) - q), -1):
if s[w] != a[w] and s[w] != '?':
f = 0;
break;
if f == 0:
print('NO');
elif '*' not in s and len(a) != len(s):
print('NO');
else:
if (len(s)>len(a)+1):
print("NO");
else:
print('YES');
Объяснение:
надеюсь что