Для заданных натуральных чисел N и K требуется вычислить количество чисел от 1 до N,...

0 голосов
104 просмотров

Для заданных натуральных чисел N и K требуется вычислить количество чисел от 1 до N, имеющих в двоичной записи ровно K едениц. два натуральных числа через пробел N и K, не превышающие 10^9


Информатика (12 баллов) | 104 просмотров
Дан 1 ответ
0 голосов

// PascalABC.Net

function dec2bin(n: integer): string;

begin

   for var c:=31 downto 0 do

       Result += IntToStr((N shr c) and 1);

end;

function count(b: string; c: char): integer;

begin

   for var i:=1 to length(b) do

       if b[i] = c then

           Result += 1;

end;

begin

   var N:=32;

   var K:=3;

   var sum:=0;

   for var i:=1 to n do

       if count(dec2bin(i), '1') = K then

       begin

           sum += 1;

       end;

   writeln(sum);

end.

(4.3k баллов)
0

Данная программа не будет заходить по времени. Т.к. ограничение до 10^9.