#include <iostream>
#include <vector>
using namespace std;
int am_dig(int k){
int res = 0;
while(k > 0){
res++;
k /= 10;
}
return res;
}
double average(vector<double> a){
double sum = 0;
for(auto i: a)
sum += i;
return sum/a.size();
}
int main() {
vector<double> a;
double x = 1;
while(x != 0){
cin >> x;
if(am_dig(x) == 3)
a.push_back(x);
}
if(a.size() == 0)
cout << "NO";
else
cout << average(a);
}
Сложение одноразрядных двоичных чисел выполняется по следующим правилам:
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 10
В последнем случае, при сложении двух единиц, происходит переполнение младшего разряда, и единица переносится в старший разряд. Переполнение возникает в случае, если сумма равна основанию системы счисления (в данном случае это число 2) или больше его (для двоичной системы счисления это не актуально).
Сложим для примера два любых двоичных числа:
1101
+ 101
10010
Вычитание
Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:
0 - 0 = 0
1 - 0 = 1
0 - 1 = (заем из старшего разряда) 1
1 - 1 = 0
Пример:
1110
- 101
1001
Умножение
Умножение одноразрядных двоичных чисел выполняется по следующим правилам:
0 * 0 = 0
1 * 0 = 0
0 * 1 = 0
1 * 1 = 1
Пример:
1110
* 10
+ 0000
1110
11100
Деление
Деление выполняется так же как в десятичной системе счисления:
1110 | 10
|
10 | 111
11
10
10
10
0