当前位置: 首页 > 面试经验 >

华为OD机试-不含101的数 (JavaScript)

优质
小牛编辑
84浏览
2023-03-28

华为OD机试-不含101的数 (JavaScript)

题目描述:小明在学习二进制时,发现了一类不含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;
}

 类似资料: