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

dierchik25 dierchik25    3   04.05.2019 22:15    7

Ответы
Tenb11 Tenb11  09.06.2020 09:56

// 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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика