Предмет: Информатика,
автор: takenfromtheashes
Для заданных натуральных чисел N и K требуется вычислить количество чисел от 1 до N, имеющих в двоичной записи ровно K едениц. два натуральных числа через пробел N и K, не превышающие 10^9
Ответы
Автор ответа:
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.
takenfromtheashes:
Данная программа не будет заходить по времени. Т.к. ограничение до 10^9.
Похожие вопросы
Предмет: Информатика,
автор: oleg6780
Предмет: Английский язык,
автор: lakrascov
Предмет: Русский язык,
автор: karolinsgrihina2012
Предмет: География,
автор: GOSHA07015
Предмет: Физика,
автор: vadyolo