Реализуйте в классе binary перегрузку четырёх операций: операция сложенияоперация вычитанияоперация умноженияоперация делениякаждая операция принимает на вход двоичное число и выдаёт ответ в виде двоичного числа. операция деления производит деление нацело.напишите программу, которая принимает на вход два бинарных числа, находит их сумму, разность, произведение и отношение и выводит их на экран в виде двоичных чисел.class binary {protected: int data[32]; // цифры двоичного числаpublic: binary(); // конструктор по умолчанию binary(int value); // конструктор, получающий двоичное число из десятичного binary(char *s); // конструктор, получающий двоичное число из строки, содержащей двоичное число void show(); // вывод двоичного числа на экран int to_int(); // перевод двоичного числа в десятичное}; binary: : binary() { for (int i = 0; i < 32; ++i) data[i] = 0; }binary: : binary(int value) { for (int i = 0; i < 32; ++i) data[i] = 0; int t = 31; while (value) { data[t--] = value % 2; value /= 2; }}binary: : binary(char *s) { int size = strlen(s)-1; for (int i = 0; i < 32; ++i) data[i] = 0; for (int i = 31; size > = 0; --size) data[i--] = s[size] - '0'; }void binary: : show() { int i = 0; while (i < 32 & & ! data[i]) ++i; if (i == 32) { cout < < 0; return; } for (; i < 32; ++i) cout < < data[i]; }int binary: : to_int() { int pow = 1, res = 0; for (int i = 31; i > = 0; --i) { res += data[i] * pow; pow *= 2; } return res; }
55
Объяснение:
Данный фрагмент кода предназначен для подсчета суммы чисел от 1 до 10. Цикл while в нем выполняет последовательность команд до тех пор, пока проверяемое условие истинно (i <= n).
Первая итерация:
sum = 0 + 1 = 1
i = 1 + 1 = 2
Вторая итерация:
sum = 1 + 2 = 3
i = 2 + 1 = 3
Третья итерация:
sum = 3 + 3 = 6
i = 3 + 1 = 4
И так далее. Всего итераций будет 10, так как при i > n цикл прекращает выполнение команд.
Таким образом, после 10 итераций переменная sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
from math import ceil
a = input()
a = a.split(' ') # ['N'], ['K'], ['M'], ... , ['Z']
SK = (int(a[1])/100)*int(a[4])
SM = (int(a[2])/100)*int(a[5])
SPP = (int(a[3])/100)*int(a[6])
if SK >= SM and SK >= SPP:
K = int(a[1]) - SK
M = int(a[2])
P = int(a[3])
N = int(a[0]) - (K + M + P)
elif SM >= SPP:
K = int(a[1])
M = int(a[2]) - SM
P = int(a[3])
N = int(a[0]) - (K + M + P)
else:
K = int(a[1])
M = int(a[2])
P = int(a[3]) - SPP
N = int(a[0]) - (K + M + P)
if N < 0:
print(-1)
else:
print(ceil(N))
Объяснение:
Не полный ответ, но ра РЭ 20б. получишь