题目描述
小杨在数学课上学习了二进制数:十进制使用0-9表示,二进制仅使用0和1表示,每个十进制数都可以通过短除法转换为二进制,转换规则:
- 将数字不断除以2,记录每次的余数(0或1)
- 除到商为0为止
- 将余数从下往上读取,即为对应的二进制数
示例:将9转换为二进制:
9 ÷ 2 = 4 余 1
4 ÷ 2 = 2 余 0
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
从下往上读余数为1001,即9的二进制表示为1001。
二进制回文数定义:二进制表示从左向右读和从右向左读完全一致的数字。
示例:
- 9的二进制是1001,正反读一致,是二进制回文数
- 12的二进制是1100,倒读为0011,去掉前导0后为11,与原内容不同,不是二进制回文数
默认小猫角色与白色背景,请编写程序计算1到n的所有数字中二进制回文数的总个数,结果存储在变量ans中。
输入描述
新建变量n,表示正整数,取值范围:1 ≤ n ≤ 10000,直接赋值即可,无需使用“询问并等待”积木。
输入变量示例:
输入样例1
n = 15
对应运行界面:
输入样例2
n = 25
对应运行界面:
输出描述
新建变量ans,存储1到n之间二进制回文数的个数,无需使用“说…”类积木输出。
输出变量示例:
输出样例1
ans = 6(1-15的二进制回文数为1、3、5、7、9、15,共6个)
输出样例2
ans = 8
注意事项
- 变量名拼写(含大小写)必须与题目要求完全一致
- 无需使用“询问并等待”积木获取输入,直接对变量n赋值即可
- 无需使用“说…”类积木输出结果,直接存入变量ans即可