题目描述:小明在学习二进制时,发现了一类不含101的数,也就是:- 将数字用二进制表示,不能出现101。现在给定一个正整数区间[l,r],请问这个区间内包含了多少个不含101的数?
输入描述:输入的唯一一行包含两个正整数l,r(1<=l<r<=109)。 示例:1 10
输出描述:输出的唯一一行包含一个整数,表示在 [l,r] 区间内一共有几个不含 101 的数。 示例:8
function compressString(a) {
// 不含101的数据 a(1 10);
// 分割参数a,[开始数据,结束位置]
let param = a.split(" ");
// 记录间隔个数
let n = param[1] - param[0] + 1;
for (let i = param[0]; i <= param[1]; i++) {
// 转换成二进制并判断是否包含101
let data = Number(i).toString(2);
if (data.indexOf(101) >= 0) {
// 如果该数包含101,总个数-1;
n--;
}
}
// 返回总个数-含101个数
return n;
}