全新题目
【编程题目 |100分】不含 101 的数【华为OD机试 2023 Q2考试题 A卷】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【不含 101 的数】
题目描述
小明在学习二进制时,发现了一类不含 101的数,也就是:
将数字用二进制表示,不能出现 101 。
现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个不含 101 的数?
输入描述
输入的唯一一行包含两个正整数 l, r( 1 ≤ l ≤ r ≤ 10^9)。
输出描述
输出的唯一一行包含一个整数,表示在 [l,r] 区间内一共有几个不含 101 的数。
示例1 输入输出示例仅供调试,后台判断数据一般不包含示例
输入
1 10
输出
8
样例解释
区间 [1,10] 内, 5 的二进制表示为 101 ,10的二进制表示为 1010 ,因此区间 [ 1 , 10 ] 内有 10−2=8 个不含 101的数。
示例2 输入输出示例仅供调试,后台判断数据一般不包含示例
输入
10 20
输出
7
样例解释
区间 [10,20] 内,满足条件的数字有 [12,14,1516,17,18,19] 因此答案为 7。
代码实现
Golang
package main import ( "fmt" )
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++
#include<bits/stdc++.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; public class Main { public static void main(String[] args) {
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.Scanner; public class Main { public static void main(String[] args) {
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看Python解法一
import sys
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看Python解法二
import sys
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
let readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, });
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看