Там целая история... проще на калькуляторе, а если так то приравнивая к десятичной системе счисления, выбором остатков.. .
Вычитание двоичных чисел. Вычитать числа, будем также столбиком и общее правило тоже, что и для десятичных чисел, вычитание выполняется поразрядно и если в разряде не хватает единицы, то она занимается в старшем. Решим следующий пример:
1101
-
110
=
111
Первый разряд. 1 - 0 =1. Записываем 1.
Второй разряд 0 -1. Не хватает единицы. Занимаем её в старшем разряде. Единица из старшего разряда переходит в младший, как две единицы (потому что старший разряд представляется двойкой большей степени ) 2-1 =1. Записываем 1.
Третий разряд. Единицу этого разряда мы занимали, поэтому сейчас в разряде 0 и есть необходимость занять единицу старшего разряда. 2-1 =1. Записываем 1.
Проверим результат в десятичной системе
1101 - 110 = 13 - 6 = 7 (111) Верное равенство.
Еще один интересный способ выполнения вычитания связан с понятием дополнительного кода, который позволяет свести вычитание к сложению. Получается число в дополнительном коде исключительно просто, берём число, заменяем нули на единицы, единицы наоборот заменяем на нули и к младшему разряду добавляем единицу. Например, 10010, в дополнительном коде будет 011011.
Правило вычитания через дополнительный код утверждает, что вычитание можно заменить на сложение если вычитаемое заменить на число в дополнительном коде.
Пример: 34 - 22 = 12
Запишем этот пример в двоичном виде. 100010 - 10110 = 1100
Дополнительный код числа 10110 будет такой
01001 + 00001 = 01010. Тогда исходный пример можно заменить сложением так 100010 + 01010 = 101100 Далее необходимо отбросить одну единицу в старшем разряде. Если это сделать то, получим 001100. Отбросим незначащие нули и получим 1100, то есть пример решён правильно
Const
n=10;
var
i,im:integer;
a:array[1..10] of integer;
begin
Randomize;
im:=1;
for i:=1 to n do begin
a[i]:=Random(21)+1;
Write(a[i],' ');
if a[i]<a[im] then im:=i
end;
Writeln;
Writeln('Минимальный элемент a[',im,']=',a[im])
end.
<u>Пример</u>
20 13 16 7 9 4 21 13 2 10
Минимальный элемент a[9]=2
#include <vector>
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n;
vector <int> a(n);
vector <int> b;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
if (a[i] % 2 != 0) {
b.push_back(a[i]);
}
for (int i = 1; i < b.size() - 1; i++)
k *= b[i];
}
cout << k;
return 0;
}
A:=3,14*r*r, где радиус ты должна указать
55:5=11
365:11≈33(34) берём "34", чтобы перехлестнуть 365.
Так как 11-ый член является замыкающим (перехлёстывающим 365), тогда смотрим по ближайшим:
34*10=340 (340+34=374) - подходит, но это не максимум!
365 mod 10= 36, а это значит, что последующий член будет больше 365, а именно 395.
В задании сказано, что d должно быть максимальным, а "34" - это допустимое, но не максимально число, удовлетворяющее условию, даже минимальное (по результату).
Проверка:
34*11=374, значит, когда на экране выведется s:=340, n:=50, то, зайдя по следующему циклу, получится, что s:= 374, n:=55. На следующий цикл программа не пойдёт.
Ответ: d=34.