[蓝桥杯 2021 国 BC] 二进制问题

题目描述

小蓝最近在学习二进制。他想知道 $1$ 到 $N$ 中有多少个数满足其二进制表示中恰好有 $K$ 个 `1`。你能帮助他吗?

输入输出格式

输入格式


输入一行包含两个整数 $N$ 和 $K$。

输出格式


输出一个整数表示答案。

输入输出样例

输入样例 #1

7 2

输出样例 #1

3

说明

对于 $30 \%$ 的评测用例, $1 \leq N \leq 10^{6}, 1 \leq K \leq 10$ 。 对于 $60 \%$ 的评测用例, $1 \leq N \leq 2 \times 10^{9}, 1 \leq K \leq 30$ 。 对于所有评测用例, $1 \leq N \leq 10^{18}, 1 \leq K \leq 50$ 。 蓝桥杯 2021 国赛 B 组 H 题(C 组 J 题)。