#include <iostream>
using namespace std;
int main() {
bool Flag = false;
int N, max, min;
cin >> N;
int* array = new int[N];
for (int i = 0; i < N; i++) {
cin >> array[i];
if (array[i] % 2 == 0 && array[i] > 0) {
max = array[i];
min = array[i];
Flag = true;
}
}
if (Flag == false) {
cout << -1 << " " << -1;
}
else {
for (int i = 0; i < N; i++) {
if (array[i] > max && array[i] % 2 == 0 && array[i] > 0)
max = array[i];
else if (array[i] < min && array[i] % 2 == 0 && array[i] > 0)
min = array[i];
}
cout << min << " " << max;
}
delete[] array;
return 0;
}
0011₂+1011₂ = 3₁₀+11₁₀ = 14₁₀ (или 1110₂)
10110₂-1011₂ = 22₁₀-11₁₀ - 11₁₀ (или 1011₂)
Объяснение:
Перевод из двоичной в десятичную систему исчисления производится справа налево, таким образом:
0011₂= 1*2⁰+1*2¹+0*2²+0*2³ = 1*1+1*2+0*4+0*8 = 1+2+0+0 = 3₁₀
1011₂= 1*2⁰+1*2¹+0*2²+1*2³ = 1*1+1*2+0*4+1*8 = 1+2+0+8 = 11₁₀
10110₂= 0*2⁰+1*2¹+1*2²+0*2³+1*2⁴ = 0*1+1*2+1*4+0*8+1*16 = 0+2+4+0+16 = 22₁₀
1011₂= 1*2⁰+1*2¹+0*2²+1*2³ = 1*1+1*2+0*4+1*8 = 1+2+0+8 = 11₁₀
Объяснение для "или":
Перевод из десятичной в двоичную производится делением числа на 2 до тех пор, пока не останется ответ 1, и записи остатков и ответа справа налево, начиная с ответа, таким образом:
14/2=7(ост. 0); 7/2=3(ост. 1); 3/2=1(ост. 1)
Запишем как: 1110₂
11/2=5(ост. 1); 5/2=2(ост. 1); 2/2=1(ост. 0)
Запишем как: 1011₂