

【题目描述】
小杨在数学课上学习了有趣的二进制数。十进制数是我们平时用的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,正着读和倒着读都是1001,所以9是二进制回文数
- 数字12的二进制是1100,倒着读是0011,去掉前面的0后是11,和原来的1100不一样,所以12不是二进制回文数
默认小猫角色和白色背景,请你帮助小杨编写一个程序,计算从1到n的所有数字中,有多少个是二进制回文数,并把结果存储在变量ans中。
【输入描述】
新建变量“n”,表示一个正整数($1 \le n \le 10000$)。
如下如所示:

【输出描述】
新建变量“ans”,用于存储最后的结果,表示1到n之间二进制回文数的个数。
如下如所示:

【样例解释】
在1到15之间,二进制回文数有:
- 1(二进制1)
- 3(二进制11)
- 5(二进制101)
- 7(二进制111)
- 9(二进制1001)
- 15(二进制1111)
共6个。
【样例1】
输入:
n = 15
输出:
ans = 6
【样例2】
输入:
n = 25
输出:
ans = 8
【注意事项】
- 变量名的拼写(包括大小写)要和题目完全一致。
- 输入变量直接赋值即可,无需使用“询问并等待”积木块。
- 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。