ИНФОРМАТИКА 63 БАЛЛА (простое задание)
Множество A содержит натуральные числа из отрезка [15..30]. Множество B содержит натуральные числа из отрезка [23..40].
Сколько чисел из множества A ⋃ B, содержат в своей двоичной записи не менее четырех значащих нулей?
⋃ - обозначает объединение множеств.
Answers & Comments
Ответ:
6
Объяснение:
15=1111
16=10000 ---- подходит
17=10001
18=10010
19=10011
20=10100
21=10101
22=10110
23=10111
24=11000
25=11001
26=11010
27=11011
28=11100
29=11101
30=11110
31=11111
32=100000 ---- подходит
33=100001 ---- подходит
34=100010 ---- подходит
35=100011
36=100100 ---- подходит
37=100101
38=100110
39=100111
40=101000 ---- подходит
ну, все же, вот до кучи решение, с помощью кода(мало ли в следующий раз числа будут не от 15 до 40, а от 10 и 10^5 там) :
signed main(){
ll ans = 0;
for(ll i = 15; i <= 40; i++){
cout << i << " ";
string s;
ll k = i, cnt = 0;
while(k > 0){
cnt += (k % 2 == 0);
s += k % 2 + '0';
k /= 2;
}
reverse(all(s));
cout << s << " ";
if(cnt >= 4){
ans++;
cout << "+\n";
}
else cout << "-\n";
}
cout << ans;
}
Upd: добавил скрин работы проги