ИНФОРМАТИКА 63 БАЛЛА (простое задание)

Множество A содержит натуральные числа из отрезка [15..30]. Множество B содержит натуральные числа из отрезка [23..40].
Сколько чисел из множества A ⋃ B, содержат в своей двоичной записи не менее четырех значащих нулей?

⋃ - обозначает объединение множеств.


stglupa: делишь до упора на два и остатки записываешь в обратном порядке
stglupa: я могу через программирование сделать, пойдет?
warkov: да, будет классно
warkov: PS еще 30 минут тест
stglupa: ну, там уже расписали, так что, сегодня без программирования)
Tanya122018: Хех
Tanya122018: Надеюсь, это правильно
stglupa: да, правильно
stglupa: я все же запрогал
Tanya122018: Класс, спасибо

Ответы

Ответ дал: Tanya122018
4

Ответ:

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    ---- подходит

Ответ дал: stglupa
2

ну, все же, вот до кучи решение, с помощью кода(мало ли в следующий раз числа будут не от 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: добавил скрин работы проги

Приложения:
Вас заинтересует